【问题标题】:Where does the .gitignore file belong?.gitignore 文件属于哪里?
【发布时间】:2023-03-13 01:34:01
【问题描述】:

.gitignore 文件是否属于 .git 文件夹结构中的某处或主要源文件?

【问题讨论】:

  • 您可以在项目的每个目录中都有一个 .gitignore。但是,最好的做法是在项目根目录上拥有一个 .gitignore 文件,并将所有要忽略的文件放在其中。

标签: git gitignore


【解决方案1】:

将 .gitignore 放在 working 目录中。如果将它放在 .git (repository) 目录中,它就不起作用。

$ ls -1d .git*
.git
.gitignore

【讨论】:

  • 这是一个模棱两可的答案 IMO。工作目录在哪里?在它的根?任何地方?
  • @CarlesAlcolea ,答案是您可以将.gitignore 文件放在工作目录中的任何位置,即您的代码所在的任何文件夹中。话虽如此,最佳做法是将.gitignore 文件放在根目录中。这意味着一个 .gitignore 文件用于一个完整的 repo。这样可以更有效地管理被忽略的文件。
  • 我需要进一步的解释。如果 .gitignore 放在子目录中会发生什么?它只是规范子目录及其分支吗?是否可以在不同的子目录中有多个 .gitignore?子目录中具有不同规则的 .gitignores 会层叠在父目录的 .gitignores 上吗?
  • @BehroozKarjoo - 根据文档,gitignore 适用于同一目录(或任何子目录)中的所有文件 - 为文档键入“git help ignore”。
【解决方案2】:

正如其他答案所述,您可以将 .gitignore 放在 Git 存储库的任何目录中。但是,如果您需要.gitignore 的私​​有版本,您可以将规则添加到.git/info/exclude 文件中。

【讨论】:

  • 另外,core.excludesfile(参见 git-config(1))指定一个包含您个人排除模式的文件(您最喜欢的“临时文件”命名模式,您的编辑器的备份/临时文件等)。因此,请避免将“个人模式”放入跟踪的 .gitignore 文件中。
  • 这个答案的私人部分非常有帮助,因为我对项目进行了一些不属于签入 .gitignore 文件的修改。
【解决方案3】:

你可以将 .gitignore 放在 git 的任何目录中。

它通常用作文件夹中的占位符文件,因为文件夹通常不被 git 跟踪。

【讨论】:

  • 为什么你可以把它放在任何地方? git怎么不糊涂?
  • 所以.gitignore 文件可以进入 .git 目录本身,可以吗? (这是最初的问题)。这样做的目的是什么?
【解决方案4】:

如有疑问,只需将其放在存储库的根目录中即可。请参阅https://help.github.com/articles/ignoring-files/ 了解更多信息。

【讨论】:

    【解决方案5】:

    在简单的情况下,存储库的根目录中可能有一个 .gitignore 文件,该文件递归地应用于整个存储库。但是,也可以在子目录中包含其他 .gitignore 文件。这些嵌套的.gitignore 文件中的规则仅适用于它们所在目录下的文件。 Linux 内核源代码库有 206 个.gitignore 文件。

    -- 这是我从progit.pdf(版本 2),P32 读到的内容

    【讨论】:

    • 这比“你可以把它放在任何地方”更具描述性。感谢您的澄清。
    【解决方案6】:

    如果你想在全局范围内进行,你可以使用 git 将搜索的默认路径。只需将其放在路径~/.config/git中名为“ignore”的文件中

    (所以您的文件的完整路径是:~/.config/git/ignore

    【讨论】:

      【解决方案7】:

      根目录可以放置.gitignore 文件。

      不要忘记使用git rm --cached FILENAME 将文件添加到 .gitignore,如果您已创建 gitignore 文件之后您提交了带有您想要忽略的文件的 repo。见github docs。我在创建 .env 文件时发现了这一点,然后提交它,然后尝试通过创建 .gitignore 文件来忽略它。

      【讨论】:

        【解决方案8】:

        如果您尚未在文件夹项目中创建全局 .gitignore,您也可以直接在 ~ 路径中找到它。 您的所有 .git 项目都会考虑此文件。

        【讨论】:

        • 这在 Windows Server 2016 中对我不起作用。但是,如上面@liran 的帖子中所述,将 ~/.config/git/ignore 中的内容放入这个确实有效。
        • @jessewolfe:感谢您返回 Windows,因为我的回答只涉及 Linux。 ?
        【解决方案9】:

        此外,如果您在 Github 上创建一个新帐户,您将可以选择添加 .gitignore,它将自动设置在您工作地点的正确/标准位置。您不必一开始就在其中添加任何内容,只需随时更改内容即可。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-11-12
          • 2010-10-08
          • 1970-01-01
          • 2022-11-30
          • 2010-11-07
          • 2013-07-21
          相关资源
          最近更新 更多