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

3

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

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

我认为我理解"git add -n"的含义,它是"git add"的模拟操作,意味着它将告诉用户哪些文件更改将被添加到暂存区(索引),而不实际添加任何内容到暂存区。我在在线git文档中读到了以下关于"git add -n"命令的描述:
-n --dry-run 不要实际添加文件,只显示它们是否存在和/或将被忽略。
通过“将被忽略”,我假设如果“git add -n”未显示它将对现有文件执行的操作,则该文件正在被“忽略”。我还没有遇到过该命令会字面上显示将忽略某个文件的情况...然而,请注意,我只使用Git工作了几周。
现在,我的困惑始于"--ignore-missing"的以下描述:
--ignore-missing 此选项只能与--dry-run一起使用。通过使用此选项,用户可以检查是否会忽略任何给定的文件,无论它们是否已经存在于工作树中。
“...用户可以检查是否会忽略任何给定的文件”...但是,我认为这就是"git add -n"单独执行的功能。我设置了一个存储库,其中所有匹配*.log的文件都将被忽略。然而,除非它已经是存储库的一部分,否则我不会看到"git add -n"提到任何具有该扩展名的文件。"git add -n --ignore-missing"也是如此。
我一直在拼命寻找一个方法,使此选项与"git add -n"的常规用法有所区别。我有一种感觉,我的对于"git add -n"的理解部分或完全是错误的,这让我感到担忧。因此,我希望有人可以详细说明并强调我的错误之处。感谢所有能够提供帮助的人!
1个回答

3
您可以使用git add -n --ignore-missing some.filename命令,如果some.filename被gitignore策略忽略,则会收到“以下路径被您的一个.gitignore文件所忽略”的消息和非零退出状态。即使实际上没有名为some.filename的文件,此方法也有效。如果不加--ignore-missing选项,则会出现关于some.filename不存在的错误消息。请注意保留HTML标签。

无论我运行 git add -n --ignore-missing some.filename 还是 git add -n some.filename,我都得到相同的结果。这可能与配置有关吗? - user6312047
“同样的结果”指的是两个命令都会输出“以下路径被您的 .gitignore 文件之一忽略:” - user6312047
我的错误是试图在存在的文件上运行它。如果不存在,是的,你是完全正确的。 - user6312047

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