【问题标题】:gitignore won't ignore my .settings/ directory (created by eclipse)gitignore 不会忽略我的 .settings/ 目录(由 eclipse 创建)
【发布时间】:2015-05-26 13:46:05
【问题描述】:

git 状态:

Untracked files:
(use "git add <file>..." to include in what will be committed)
    .settings/

我在 .gitignore 文件上尝试了以下变体,但似乎没有任何效果:

.settings/

*settings*

*.settings/

.settings/*

.gitignore 从来没有遇到过这么大的麻烦,它通常可以正常工作。我一定是在做一些非常愚蠢的事情。

注意:我的.gitignore 文件中包含的不仅仅是那一行(所有其他行都正常工作)。

【问题讨论】:

  • .settings/* 对我有用。与 .settings 目录相比,eis 在哪里找到了您的 gitignorefile?

标签: eclipse git gitignore


【解决方案1】:

我以为我遇到了同样的问题。事实证明,我一直在 git status 中看到 .settings/ 的原因是因为其他人已经将 .settings/ 提交给了 repo。因此,.settings/ 一直显示在 Changes not staged for commit 文件列表下,因为我的 IDE 触及/更改了此目录。

您希望 .settings/ 对 git 不可见,因此将其从跟踪中删除。然后,当您进行涉及此目录的更改时,您将不会在 Untracked files 列表下看到它,因为您已将其添加到 .gitignore 文件中。在第 1 位提交 .settings/ 的人也不会认为它有资格提交,因为他们使用您的更新更新了他们的 .gitignore 文件以忽略 .settings/ 文件夹。

【讨论】:

  • 如何从跟踪中删除文件夹?
  • @AuxiliaryJoel git rm -r --cached &lt;folder&gt;/
【解决方案2】:

/**/.settings/

努力忽略根目录下的 .settings 文件夹。

【讨论】:

    【解决方案3】:

    我的 .gitignore 文件在 .settings 之前有一个前导斜杠:

    /.settings
    

    你没有那个斜线的地方。尝试添加斜线

    【讨论】:

    • 前导斜杠将确保仅忽略根目录中的 .settings 文件夹(相对于 .gitignore 文件)(而不是例如 foo/.settings
    • @umläute 但 .settings 始终位于根目录中。这个问题专门针对 Eclipse 项目中的 .settings 文件夹。这个解决方案解决了这个问题。
    • @umläute 阅读问题。该问题专门询问如何 gitignore .settings 目录。我回答了那个具体的问题。如果 OP 想知道如何 gitignore 其他目录,那么 OP 应该修改问题。
    • 难道 gitignore 中的 .settings 不适用于所有 .settings 文件夹吗?
    【解决方案4】:

    对我来说,解决方法是将.settings/ 移动到.gitignore 文件的末尾。最初我只是将它作为.gitignore 文件的第一行。不知道为什么这很重要。有人解释一下吗?

    【讨论】:

    • 对您观察到的情况没有明确的解释。但是,FWIW,这对我来说效果很好:/.settings -- 在文件顶部附近,甚至......
    • 已确认。我的.gitignore 文件中已经有一个* 行,但我的/documents/ 目录(确切行)没有被忽略。当我将明确的(并且看似多余的)/documents/ 行移到 !*/ 行之后时,它起作用了。该目录中有很多 Git 存储库。也许这会让 Git 感到困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    相关资源
    最近更新 更多