该命令git add [--all|-A]似乎与 相同git add .。这个对吗?如果不是,它们有何不同?
git add [--all|-A]
git add .
此答案仅适用于Git 版本 1.x。对于 Git 版本 2.x,请参阅其他答案。
概括:
git add -A
git add -u
细节:
git add -A相当于 git add .; git add -u。
git add .; git add -u
重要的一点git add .是,它查看工作树并将所有这些路径添加到暂存更改中,如果它们已更改或是新的且未被忽略,它不会暂存任何“rm”操作。
git add -u查看所有已跟踪的文件并暂存对这些文件的更改(如果它们不同或已被删除)。它不会添加任何新文件,它只会暂存对已跟踪文件的更改。
git add -A 是做这两个的方便快捷方式。
您可以使用类似这样的方法测试差异(请注意,对于 Git 版本 2.x,您的输出git add . git status 会有所不同):
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 add --ignore-removal .
git add --all
git add --update