git add -n --ignore-missing实际上做了什么?

时间:2016-08-25 16:09:17

标签: git git-add

这看起来很简单,但我很难理解以下命令之间的区别:

git add -n 
and
git add -n --ignore-missing

我相信我明白了什么" git add -n"从某种意义上说,它是" git add"的干运行,这意味着它将告诉用户哪些文件更改将添加到暂存区域(索引)而不实际向暂存区域添加任何内容。我阅读了以下对" git add -n"的描述。 online git documentation中的命令:

  

-n
  --dry-run

     

实际上不添加文件,只显示它们是否存在和/或将被忽略。

"将被忽略"我假设如果" git add -n"没有显示它将对存在的文件做什么,然后该文件被忽略"。我还没有想出这样一种情况,即命令将逐字显示文件将被忽略......请注意,我过去几周只与Git合作过。

现在,我的困惑开始于" - 忽略"的以下描述:

  

- 忽略 -

     

此选项只能与--dry-run一起使用。通过使用此选项,用户可以检查是否有任何给定文件   无论他们是否已经出现在工作中,都会被忽略   树与否。

" ...用户可以检查是否会忽略任何给定的文件" ...但是,我认为" git add -n"完全靠自己做。我建立了一个存储库,其中所有与* .log匹配的文件都将被忽略。然而,我没有看到" git add -n"提及任何具有该扩展名的文件,除非它已经是存储库的一部分。同样适用于" git add -n --ignore-missing"。

我一直在拼命寻找一种方法,这个选项与常规使用" git add -n"有所不同。我有一种感觉,我对" git add -n"的理解部分或完全不正确,让我担心。因此,我希望有人可以详细说明并强调我出错的地方。感谢所有能提供帮助的人!

1 个答案:

答案 0 :(得分:2)

您可以git add -n --ignore-missing some.filename,如果gitignore政策忽略some.filename,您将获得"您的.gitignore文件会忽略以下路径"消息和非零退出状态。即使实际上没有名为some.filename 的文件,这也适用于。如果没有--ignore-missing,则会收到有关some.filename不存在的错误消息。