2010-02-03 69 views

回答

59

它是git陷阱之一mentioned here(pre 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 is default

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, for upcoming git2.0)。
我已经修改我的答案说git add -u .,而不是git add -u

git add -uGit中2.0对整个树操作的一致性“git commit -a”等命令。
由于没有任何机制可以使“git add -u”的行为与“git add -u .”相同,因此对于习惯于“git add -u”(无pathspec)的用户来说,更新仅适用于当前子目录中的路径以开始训练其路径的用户是 手指在Git 2.0到来之前明确表示“git add -u .”。

正如我在 “e

+5

感谢您的回答和一个例子。 “嘿!”线真的帮助我。 – 2010-02-03 14:15:42

+0

@TK:是的,Benjol(http://stackoverflow.com/users/11410/benjol)的例子是一个很好的例子。 – VonC 2010-02-03 14:18:28

+0

看来我们不需要把'.'(pathspec)和Git 2.x结合起来。它在我测试时可以找到。 – 2015-07-24 03:26:52

19

就像手册说的那样:git add .会在当前目录中添加所有文件,而git add -u .只会添加那些已经被跟踪的文件。

+7

提到的'添加-u'也将上演删除。 – 2010-02-03 07:56:31

+0

只有当被删除的文件被跟踪时; – 2010-02-03 07:57:59

+0

add -u是提交-a等效的一种(在它操作的文件中)。 – 2010-02-03 09:26:17

10

git add documentaiton

git add . 

从当前目录

git add -u 

只更新文件当前正在跟踪添加的所有文件。

相关问题