git add [--all | -A]
之间有什么区别?和 git add .
?
最佳答案
此答案仅适用于 Git 版本 1.x。对于 Git 版本 2.x,请参阅其他答案。
总结:
git add -A
分阶段所有更改git add .
暂存新文件和修改,不删除(在当前目录及其子目录上)。git add -u
阶段修改和删除,没有新文件
详细信息:
git add -A
等同于 git add .; git add -u
.
关于 git add .
的重要一点是它查看工作树并将所有这些路径添加到暂存更改(如果它们已更改或者是新的且未被忽略),它不会暂存任何“rm”操作。
git add -u
查看所有已经 跟踪的文件并暂存对这些文件的更改(如果它们不同或已被删除)。它不会添加任何新文件,它只会暂存对已跟踪文件的更改。
git add -A
是执行这两项操作的便捷快捷方式。
你可以用这样的东西来测试差异(请注意,对于 Git 版本 2.x,你的 git add .
git status
的输出将强>与众不同):
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 - "git add -A"和 "git add ."之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572549/