`git add -A`真的有用吗?

时间:2015-07-01 16:55:55

标签: git

根据the git documentation

  

-A
   - 所有
  --no-忽略去除

     

不仅更新索引,而且工作树的文件匹配<pathspec>,而且索引已经存在   条目。这会添加,修改和删除索引条目以匹配   工作树。

     

如果在使用-A选项时没有给出<pathspec>,则表示所有文件   整个工作树都更新了(旧版本的Git用来限制   更新到当前目录及其子目录。)

我理解这意味着当我运行git add -A subdirectory时,该git实际上是这样做的:

$ git update-index --again
$ git add subdirectory

但是,在本地虚拟git存储库中进行简单测试后,它不会更新<pathspec>之外但已经暂存的文件。事实上,无论有没有-A选项,我都无法找到行为上的任何差异。

任何人都可以解释-A的{​​{1}}选项的行为(git文档的解释总是有点难以接受)?

1 个答案:

答案 0 :(得分:3)

--no-ignore-removal是一个线索。这意味着如果文件出现在您的工作树中,但 出现在索引中 - 例如如果您rm编辑了git rm但未编辑git rm,那么它将从索引中删除(就像您PosPanel编辑它一样。)