"git add -A"和"git add --update :/"有什么区别?

23

过去我使用这个 Git 命令管理我的文件:

add --update :/ 

有人告诉我这是获取所有已添加、删除和更新文件的最佳方式。

然而,在阅读完“git add -A”和“git add .”之间的区别后,我认为我应该使用git add -A

请问是否有区别以及git add --update :/实际上是做什么的?

1个回答

36
"

git add --update :/会更新或删除先前跟踪的文件,但不会添加新文件。

git add -A也会更新或删除先前跟踪的文件,但它还会添加新文件。由于此命令没有显式指定pathspec :/,所以根据您使用的Git版本,它可能是整个工作树中的所有文件,也可能是当前目录和所有子文件夹和文件。

有关更多信息,请参阅git add文档:http://git-scm.com/docs/git-add

"

从你的话中我理解最好使用git add -A,因为它能够包含所有内容,对吗? - Alan2
更好是非常主观的。如果您想轻松地捕获添加,并且您已经正确设置了所有的.gitignore文件,以便不会意外提交任何机密信息到存储库(至少不应该被提交),并且您的git版本足够新,则-A 更适合您的用例。如果这些条件都满足,但git版本不够新,则 git add -A :/ 可能更好(除非您只想从当前目录以下提交,然后使用 git add -A .)。 - Charlie
1
@Charlie,你所说的“先前跟踪的文件”是什么意思? - hellouworld
1
@hellouworld 在您的工作目录中,文件可以被跟踪或未跟踪... 请参阅:https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository 因为 git add 是将文件从未跟踪到已跟踪的机制,我怀疑5年前我试图强调文件状态与 git 相关 运行添加命令之前... - Charlie
好的回答;只是澄清一下,在第二种情况下,您也可以添加一个路径规范(git add -A <pathspec>),尽管提问者没有包含它。 - John

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接