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



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

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

我相信我理解了"git add -n"的作用,因为它是"git add"的演练,这意味着它会告诉用户哪些文件更改将被添加到staging区域(索引),而实际上没有添加任何内容到staging区域。我在git在线文档中阅读了以下关于"git add -n"命令的描述:

- n
——即将

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

通过"will be ignored",我假设如果"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"的理解部分或完全不正确,这让我很担心。所以我希望有人能详细说明并强调我错在哪里。感谢所有能帮忙的人!

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

最新更新