.gitignore文件属于哪里?

.gitignore文件属于哪里?,git,gitignore,Git,Gitignore,.gitignore文件属于.git文件夹结构中的某个位置还是主源文件?您可以将.gitignore放置在git中的任何目录中 它通常用作文件夹中的占位符文件,因为git通常不会跟踪文件夹。如果有疑问,请将其放在存储库的根目录中。有关更多信息,请参阅。正如其他答案所述,您可以将.gitignore放在Git存储库的任何目录中。但是,如果您需要有一个私有版本的.gitignore,您可以将规则添加到.git/info/exclude文件中。将.gitignore放在工作目录中。如果将它放在.git

.gitignore文件属于.git文件夹结构中的某个位置还是主源文件?

您可以将.gitignore放置在git中的任何目录中


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

如果有疑问,请将其放在存储库的根目录中。有关更多信息,请参阅。

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

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

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

如果您想在全局范围内执行此操作,可以使用git将搜索的默认路径。只需将它放在路径
~/.config/git


(因此,文件的完整路径是:
~/.config/git/ignore

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

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

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


--这是我从
progit.pdf
(第2版)中读到的,P32

根目录可以放置
.gitignore
文件


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

另外,
core.excludesfile
(请参阅)指定一个包含个人排除模式的文件(您最喜欢的“临时文件”命名模式、编辑器的备份/临时文件等)。因此,请避免在跟踪的
.gitignore
文件中放置“个人模式”。此答案的私有部分非常有用,因为我对项目进行了一些修改,这些修改不属于签入的
.gitignore
文件。您可以在项目的每个目录中都有一个.gitignore。但是,最佳做法是在项目根目录上有一个.gitignore文件,并将所有要忽略的文件放在其中。为什么允许将其放在任何位置?为什么git不会感到困惑?所以.gitignore文件可以放在.git目录中,不是吗?(这是最初的问题)。那有什么用呢?在我看来这是一个模棱两可的答案。在工作目录中的什么地方?根本原因是什么?Anywhere?@CarlesAlcolea,答案是你可以把
.gitignore
文件放在工作目录的任何地方,即你的代码所在的任何文件夹中。话虽如此,最好的做法是将
.gitignore
文件放在根目录中。这意味着一个
.gitignore
文件用于整个回购。这样可以更有效地管理被忽略的文件。我需要一些进一步的解释。如果将.gitignore放在子目录中会发生什么?它只是管理子目录及其分支吗?有可能在不同的子目录中有多个.gitignore吗?子目录中具有不同规则的.gitIgnors是否会级联到parrent目录的.gitIgnors上?@BehroozKarjoo-根据文档,gitignore适用于同一目录(或任何子目录)中的所有文件-键入文档中的“git help ignore”。这在Windows Server 2016中不适用于我。但是,p[utting ~/.config/git/ignore中的内容,如上面@liran的帖子所述,确实有效。@jessewolfe:谢谢你返回Windows,因为我的答案只涉及Linux。这比“你可以把它放在任何地方”更具描述性。谢谢你的澄清。