【问题标题】:What does git add -n --ignore-missing actually do?git add -n --ignore-missing 实际上是做什么的?
【发布时间】:2017-01-02 04:00:02
【问题描述】:

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

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

我相信我理解“git add -n”的作用,因为它是“git add”的试运行,这意味着它将告诉用户哪些文件更改将添加到暂存区域(索引)没有实际添加任何东西到暂存区。我在online git documentation中阅读了以下对“git add -n”命令的描述:

-n
--dry-run

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

通过“将被忽略”,我假设如果“git add -n”没有显示它将对存在的文件做什么,那么该文件将被“忽略”。我还没有想到命令会字面上显示文件将被忽略的情况......但是。请注意,过去几周我只使用 Git。

现在,我的困惑始于以下对“--ignore-missing”的描述:

--忽略缺失

此选项只能与 --dry-run 一起使用。通过使用此选项,用户可以检查是否有任何给定文件 将被忽略,无论它们是否已经存在于作品中 树与否。

“...用户可以检查是否有任何给定的文件会被忽略”...但是,我认为这就是“git add -n”本身所做的一切。我建立了一个存储库,其中所有匹配 *.log 的文件都将被忽略。然而,我没有看到“git add -n”提到任何具有该扩展名的文件,除非它已经是存储库的一部分。 “git add -n --ignore-missing”也是如此。

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

【问题讨论】:

    标签: git git-add


    【解决方案1】:

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

    【讨论】:

    • 无论我运行git add -n --ignore-missing some.filename 还是git add -n some.filename,我都会得到相同的结果。可能是配置中的东西吗?
    • 通过“相同的结果”,我的意思是我得到两个命令的The following paths are ignored by one of your .gitignore files: 输出
    • 我在一个确实存在的文件上尝试它的错误。如果不是,是的,你是绝对正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2010-11-26
    • 2015-06-23
    • 2017-12-26
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多