-
理論
字面解釋的話,git commit -m 用于提交暫存區(qū)的文件,而 git commit -am 用于提交跟蹤過(guò)的文件。
【注意】git commit -am可以寫成git commit -a -m实束,但不能寫成git commit -m -a
定義中出現(xiàn)了 暫存區(qū)奥秆,跟蹤過(guò)的文件等術(shù)語(yǔ),下面來(lái)了解一下他們咸灿。
工作目錄下面的所有文件都不外乎這兩種狀態(tài):已跟蹤(tracked)或未跟蹤(untracked)构订。已跟蹤的文件是指本來(lái)就被納入版本控制管理的文件,在上次快照中有它們的記錄避矢,工作一段時(shí)間后悼瘾,它們的狀態(tài)可能是未更新(unmodified),已修改(modified)或者已放入暫存區(qū)(staged)审胸。
-
實(shí)例
下面以一個(gè)實(shí)例來(lái)進(jìn)行說(shuō)明
在項(xiàng)目文件夾中新增一個(gè)a.txt文件亥宿,該文件處于未跟蹤狀態(tài)(untracked).未跟蹤狀態(tài)的文件時(shí)無(wú)法提交的。
接下來(lái)砂沛,使用git add a.txt,使其變成已跟蹤狀態(tài)(tracked)
這時(shí)烫扼,如果使用 git commit -m 'add a.txt'就可以順利提交了
-
但是,git commit -m和 -am 的區(qū)別到底在那里呢碍庵?在于文件修改后的處理
如果這時(shí)材蛛,我們向a.txt中添加(修改)內(nèi)容 ‘我很帥’,這時(shí),a.txt文件是還是處于跟蹤狀態(tài)(tracked)的怎抛,但是未暫存狀態(tài)(unstaged)
這時(shí),如果使用 git commit -m 是無(wú)法提交修改后的文件的 (需要再次-add芽淡,-commit)马绝,提交的還是最開(kāi)始的空白的a.txt文件。
-
而如果使用 git commit -am ,則可以省略 git add a.txt(使a.txt文件狀態(tài)變成 staged),因?yàn)?git commit -am 可以提交跟蹤過(guò)的文件挣菲,而a.txt已經(jīng)跟蹤過(guò)了(-am = add + commit)
-a和-am的區(qū)別.PNG