所謂 add
,就是 add file into staged area
。
新文件
add
是一個比較重要的操作绊序,假設有一個空目錄,此時里面沒有任何文件隶症。
我們新建一個文件政模,這個文件就是處于 untrack
狀態(tài)的。
修改這個文件蚂会,依然是處于 untrack
狀態(tài)淋样。
使用 add
操作,將新文件添加到暫存區(qū)(staged
)胁住,并且將文件標記為 track
趁猴,這是 add
比較清晰的兩個作用。
使用 commit
操作彪见,生成快照儡司,同時 clean
暫存區(qū),初始化一切余指。
舊文件
另外一種情況捕犬,假設已經(jīng)有了舊文件,文件處于 track
狀態(tài)酵镜。
此時修改文件碉碉,如果使用 status
命令查看,會提示 Changes not staged for commit
淮韭,大意就是此時已經(jīng)更新文件了垢粮,但是更新的內(nèi)容還沒有暫存起來,提示使用 add
操作進行暫存靠粪。
按照提示使用 add
操作后蜡吧,使用 status
命令查看毫蚓,會發(fā)現(xiàn)處于已暫存狀態(tài)。Changes to be committed
昔善,如果此時提交元潘,那么該文件此時此刻的版本將被留存在歷史記錄中。
與 commit
搭配使用
如果發(fā)現(xiàn)不斷的 add
耀鸦、commit
比較麻煩柬批,可以使用 commit
命令 加-a
參數(shù),Git
會自動更新已經(jīng)跟蹤過的文件袖订,更新暫存區(qū)。
但這里有個地方需要留意嗅虏,-a
參數(shù)并不會更新未跟蹤的文件洛姑。
總結(jié)
關(guān)于 add
,最值得留意的就是一旦修改文件皮服,必須重新暫存楞艾,否則生成快照( commit
)的依然是上次 add 時的狀態(tài),快照只從暫存區(qū)來龄广。
總結(jié)起來硫眯,對于新文件,add
會跟蹤文件择同,同時將文件存入暫存區(qū)两入,如果是舊文件,可以按照本地文件更新暫存區(qū)的文件敲才。
除了上面提到的裹纳,還有一種常見的情況,當文件出現(xiàn)沖突時紧武,經(jīng)常需要人為解決沖突剃氧,在修改之后,可以使用 add
操作將有沖突的文件標記為已經(jīng)解決狀態(tài)阻星。