git add -A 和 git add . 的區別
阿新 • • 發佈:2018-12-30
git add -A
和 git add . git add -u在功能上看似很相近,但還是存在一點差別
git add . :他會監控工作區的狀態樹,使用它會把工作時的所有變化提交到暫存區,包括檔案內容修改(modified)以及新檔案(new),但不包括被刪除的檔案。
git add -u :他僅監控已經被add的檔案(即tracked file),他會將被修改的檔案提交到暫存區。add -u 不會提交新檔案(untracked file)。(git add --update的縮寫)
git add -A :是上面兩個功能的合集(git add --all的縮寫)
下面是具體操作例子,方便更好的理解(Git version 1.x):
git init echo Change me > change-me echo Delete me > delete-me git add change-me delete-me git commit -m initial echo OK >> change-me rm delete-me echo Add me > add-me git status # Changed but not updated: # modified: change-me # deleted: delete-me # Untracked files: # add-me git add . git status # Changes to be committed: # new file: add-me # modified: change-me # Changed but not updated: # deleted: delete-me git reset git add -u git status # Changes to be committed: # modified: change-me # deleted: delete-me # Untracked files: # add-me git reset git add -A git status # Changes to be committed: # new file: add-me # modified: change-me # deleted: delete-me
總結:
· git add -A 提交所有變化
· git add -u 提交被修改(modified)和被刪除(deleted)檔案,不包括新檔案(new)
· git add . 提交新檔案(new)和被修改(modified)檔案,不包括被刪除(deleted)檔案
git版本不同會有所區別:
Git Version 1.x:
Git Version 2.x:
(如有錯誤還望指出,謝謝!)