Git,将更改添加到提交中,添加标志和提交标志之间的区别

8

-agit 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个回答

7

git add -A 不等同于 git commit 中的 -a 标志。相等的是 git add -u。它会将更改添加到已跟踪的文件(包括 rms)中。而 git add -A 还会引入未跟踪的文件。

由于 git add -Agit add -u 的超集,因此这已足够,您无需在提交时指定 -a

此外,如果没有给出路径,则假定为 . ,因此也可以省略 .

从 git 2.0 开始(2013 年中期),您需要添加路径,否则 git add -A 将操作整个工作树。

请参见 "“git add -A” 和 “git add .” 的区别"。


6
有点类似。 git add -A会匹配工作树和索引,添加新文件,标记修改的文件并删除已删除的文件。 git commit -a 仅会将已添加或修改的文件设置为阶段,但除非在先前的 git add 中已指定,否则不会添加新文件。

2

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

不是。git add . -u等同于它。

当我说“check”时,如果我同时使用add -A和commit -a,是否会有冗余发生?

不会,git commit -a将自动添加剩余的文件。在这种情况下:没有剩余文件需要添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接