【问题标题】:.gitignore isn't ignoring itself [duplicate].gitignore 并没有忽略自己[重复]
【发布时间】:2012-12-20 18:20:21
【问题描述】:

我在.gitignore 文件中添加了.gitignore 和另一个目录,但是当我git status 时,.gitignore 仍然出现!

我觉得我错过了一些非常明显的东西。

【问题讨论】:

    标签: git gitignore


    【解决方案1】:

    正如Carl Norum 指出的那样,不允许跟踪文件以被忽略。您将不得不致电

    git rm --cached .gitignore
    

    为了让它真正被忽略。

    但是您尝试做的是一个非常糟糕的主意。应该跟踪 .gitignore 文件,因此可以确保其中列出的内容实际上在所有客户端计算机上都被忽略了。如果不是这样,另一个开发人员可能会在你想忽略的 repo 中添加一个文件,你会遇到麻烦。

    即使运行上面的命令也可能会造成麻烦,因为它会为每个开发者删除该文件。

    如果出于某种原因您只想忽略机器上的内容(并且您确信这是个好主意),您需要将其添加到 .git/info/exclude。该文件与.gitignore 具有相同的功能,但不应与其他开发人员共享。

    【讨论】:

    • 感谢您完整回答“为什么”和“如何解决”。
    【解决方案2】:

    您的.gitignore 文件只会忽略未跟踪的文件。由于您可能正在跟踪您的 .gitignore 文件,您将在 git status 的输出中看到它的更改。

    如果您想忽略某些内容但又不想签入,请将其添加到您的全局 git 忽略文件中,而不是签入到存储库中的那个。

    【讨论】:

      【解决方案3】:

      停止跟踪 .gitignore 文件:

      How to stop tracking and ignore changes to a file in Git?

      git rm --cached .gitignore 
      

      【讨论】:

      • 所以这是一个愚蠢的问题:我试过了,并且 git status-ed 并说“已删除:.gitignore”......如果我提交,我会删除其他用户的 .gitignores ?
      • 不应该。您将其从存储库中删除,而不是从文件系统中删除。遥控器也不应该跟踪它。如果是这样,您将需要在您的遥控器上运行该命令,否则使用 repo 的每个主体都将共享 .gitignore 文件。
      【解决方案4】:

      可能是因为您过去已经添加了 .gitignore 文件。

      请注意,git 不会忽略之前已跟踪的文件 规则已添加到此文件以忽略它。在这种情况下,文件必须 不被跟踪,通常使用git rm --cached filename

      来自https://help.github.com/articles/ignoring-files

      【讨论】:

      • 所以这是一个愚蠢的问题:我试过了,并且 git status-ed 并说“已删除:.gitignore”......如果我提交,我会删除其他用户的 .gitignores ?
      猜你喜欢
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2014-09-13
      • 2019-09-16
      • 2021-08-15
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多