【发布时间】:2011-02-17 23:18:13
【问题描述】:
这两个命令有什么区别?
git commit -m "added a new page"
和
git commit -a -m "added a new page"
我知道 -a 选项会暂存已修改和删除的文件,但是不带 -a 运行它意味着什么?
【问题讨论】:
这两个命令有什么区别?
git commit -m "added a new page"
和
git commit -a -m "added a new page"
我知道 -a 选项会暂存已修改和删除的文件,但是不带 -a 运行它意味着什么?
【问题讨论】:
您必须使用git add 或git rm 明确地为承诺分阶段进行更改。
如果您在提交时使用-a 标志,git 将自动暂存任何修改和删除的文件,而无需您使用add 或rm 等显式暂存它们。
如果您不指定-a,任何已修改或删除但未使用git add 或git rm 显式暂存的文件将在提交中被忽略。
更新
正如 Gianluigi Zane Zanettini 博士所说 - -a 不会将新 文件添加到索引中,因此如果您有全新的文件,您不应该期望 -a 将它们添加到索引中。
http://www.kernel.org/pub/software/scm/git/docs/git-commit.html
【讨论】:
-a 仅适用于修改/删除文件。根据 git 文档,新文件不受影响:but new files you have not told Git about are not affected. => 使用 git add . 而不是 git commit -a 几乎总是更好。