“git add -u”和“git add -A”有啥区别?

Posted

技术标签:

【中文标题】“git add -u”和“git add -A”有啥区别?【英文标题】:What's the difference between "git add -u" and "git add -A"?“git add -u”和“git add -A”有什么区别? 【发布时间】:2013-02-07 07:28:14 【问题描述】:

好的,所以当我遇到“Removing multiple files from a Git repo that have already been deleted from disk”时,我正在搜索“如何从 Git 中删除手动删除的文件”,而实际上并没有为每个文件执行 git rm file.txt

投票最多的两个命令是:

git add -u git add -A

尽管它们都对我有用,但我仍然无法理解其中的区别,并且页面上的解决方案也没有解释。我的问题是,它们之间有何不同,还有哪些其他 git 命令可用于删除已从磁盘手动删除的文件?

【问题讨论】:

可能非常相关:***.com/questions/2190409/…. 【参考方案1】:

git add -A 将跟踪新的、修改的和删除的文件 git add -u 将跟踪修改和删除的文件

【讨论】:

【参考方案2】:

简要回答:

git add -A 等于 git add . + git add -u


说明:

当您执行“git add .”时,它将所有文件(现有的、修改的和新的)添加到暂存区,但不会删除已从磁盘中删除的文件。

"git add -u" 仅将当前跟踪的文件(已修改)添加到暂存区,并检查它们是否已被删除(如果是,则将它们从暂存区中删除)。这意味着它不会暂存新文件。

执行“git add -A”会执行这两个步骤,即按原样暂存整个目录。


总结:

git add -A:分阶段一切 git add -u :仅阶段 修改文件 git add . :暂存所有内容,没有已删除文件

阅读Documentation了解更多信息。

【讨论】:

对于 git 2.0 版,git add . 还记录文件删除。从 [doc][1]: > "git add " 现在与 "git add -A " 相同,因此 > "git add dir/" 会注意到您从目录中删除的路径 >并记录删除。 [1]:github.com/git/git/blob/master/Documentation/RelNotes/2.0.0.txt

以上是关于“git add -u”和“git add -A”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

git checkout .和git checkout -f的区别;git add . git add -u git add -A的区别

git add -A git add -u git add . 三种区别

“git add -u”和“git add -A”有啥区别?

markdown `git add -A` vs`git add .` vs`git add -u`

markdown `git add -A` vs`git add .` vs`git add -u`