我刚刚在我的新项目的根上做了一个git初始化。

然后我创建了一个.gitignore文件。

现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?


当前回答

你可以在。gitignore文件中加入一行。gitignore。这将导致git忽略.gitignore文件。我不认为这是个好主意。我认为ignore文件应该被版本控制和跟踪。我只是为了完整起见。

其他回答

你也可以有一个全局用户git .gitignore文件,它会自动应用到你所有的回购。这对于IDE和编辑器文件很有用(例如,Vim的swp和*~文件)。更改目录位置以适合您的操作系统。

添加到~/。gitconfig文件: (核心) Excludesfile = /home/username/.gitignore 创建一个~/。Gitignore文件,文件模式被忽略。 将您的点文件保存在另一个repo中,以便您有备份(可选)。

任何时候你复制,初始化或克隆一个repo,你的全局gitignore文件也将被使用。

当然,.gitignore文件会显示在状态中,因为它是未跟踪的,git将它视为一个美味的新文件!

然而,由于.gitignore是一个未跟踪的文件,当你把它放在.gitignore中时,它是一个被git忽略的候选文件!

所以,答案很简单:只需添加一行:

.gitignore # Ignore the hand that feeds!

到你的。gitignore文件!

而且,与August的回答相反,我应该说.gitignore文件不应该在您的存储库中。它只是碰巧可以,这通常是方便的。这可能就是.gitignore被创建为.git/info/exclude的替代品的原因,后者没有被存储库跟踪的选项。无论如何,如何使用.gitignore文件完全取决于您。

作为参考,请查看kernel.org上的gitignore(5) manpage。

.gitignore文件应该在您的存储库中,因此它确实应该被添加和提交,正如git状态所建议的那样。它必须是存储库树的一部分,这样对它的更改就可以合并等等。

因此,将它添加到您的存储库中,它不应该被忽略。

如果你真的想要,你可以添加.gitignore到.gitignore文件,如果你不想让它被提交。然而,在这种情况下,最好将忽略添加到.git/info/exclude中,这是一个特殊的本地签出文件,它的工作方式就像.gitignore,但不会显示在“git状态”中,因为它在.git文件夹中。

参见https://help.github.com/articles/ignoring-files

如果你想将被忽略的文件列表存储在Git树之外,你可以使用. Git /info/exclude文件。它只适用于你的回购结帐。

这似乎只适用于当前目录,以便让Git忽略存储库中的所有文件。

更新此文件

.git/info/exclude 

用您的通配符或文件名

* pyc * swp 赶紧*