Git,添加对提交的更改,添加和提交标志之间的差异

时间:2012-01-14 21:53:42

标签: git

-a中的git commit -a是否等同于git add . -A

假设我有以下别名:

 12 alias gita='git add . -A'
 13 alias gits='clear; git status'
 14 alias gitlog='git log --pretty=oneline --abbrev-commit'
 15 alias commit='git commit -a '

 16 alias check='gita;commit'  <--------------------------

当我说check时,当add -Acommit -a

时,是否会发生任何冗余

3 个答案:

答案 0 :(得分:7)

git add -A不等同于-a中的git commit标记。 git add -u是。它添加了对跟踪文件(包括rms)的更改。 git add -A还会带来未跟踪的文件。

由于git add -Agit add -u的超集,这就足够了,您也无需在提交中指定-a

此外,如果没有给出路径,则假设为.,因此.也是多余的

启动git 2.0(2013年中),您需要添加路径,或者git add -A将在完整工作树上运行。

请参阅&#34; Difference of “git add -A” and “git add .&#34;。

答案 1 :(得分:5)

排序。 git add -A将与工作树和索引匹配,添加新文件,标记已修改文件并删除已删除文件。 git commit -a仅会暂存已添加或修改过的文件,但除非已在之前的git add

中指定,否则不会添加新文件

答案 2 :(得分:2)

  

-it在git commit -a中等同于git add。 -A?

不,不是。 git add。 -u是。

  

当我说检查时,当我添加-A和commit -a

时,是否发生了任何冗余

没有git commit -a只会自己添加剩余的文件。在这种情况下:无。