簡體   English   中英

`git add .` 和 `git add -u` 有什么區別?

[英]What's the difference between `git add .` and `git add -u`?

我假設兩者都以相同的方式工作。 兩者都將每個文件添加到索引中。 但我好像錯了。

  • git add .什么區別git add . git add -u

這是這里提到的 git 陷阱之一(Git 2.0 之前)。

git add . 只添加現有內容,而不添加已刪除的內容(如果已跟蹤)。

git add .
git commit
git status
//hey! why didn't it commit my deletes?, Oh yeah, silly me
git add -u .
git commit --amend

git add -A會處理這兩個步驟......


對於Git 2.0, git add -A是默認值

git add <path>現在與“ git add -A <path> ”相同,因此“ git add dir/ ”會注意到您從目錄中刪除的路徑並記錄刪除。
在舊版本的 Git 中,“ git add <path> ”用於忽略刪除。

如果您真的想要,您可以說“ git add --ignore-removal <path> ”以僅在<path>添加添加或修改的路徑。


警告( git1.8.3 April 2013,對於即將推出的 git2.0 )。
我已經修改了我的答案說git add -u . , 而不是git add -u .:

git add -u將在 Git 2.0 中對整個樹進行操作,以與“ git commit -a ”和其他命令保持一致。
因為沒有機制讓“ git add -u ”表現得像“ git add -u . ”,所以對於那些習慣於“ git add -u ”(沒有路徑規范)更新索引的人來說很重要當前子目錄開始訓練他們的手指明確地說“ git add -u .當他們在 Git 2.0 出現之前的意思時。

正如我在“ e ”中提到的

就像手冊上說的: git add . 將添加當前目錄中的所有文件,而git add -u . 只會添加那些已經被跟蹤的。

git 添加文檔

git add . 

添加當前目錄中的所有文件

git add -u 

僅更新當前正在跟蹤的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM