我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
我刚刚在我的新项目的根上做了一个git初始化。
然后我创建了一个.gitignore文件。
现在,当我输入git status时,.gitignore文件出现在未跟踪文件列表中。为什么呢?
当前回答
我认为在某些情况下,忽略.gitignore是非常有用的。例如,当您有多个团队或一个大型团队在同一个代码库上工作时。在这种情况下,你需要有一些约定,其中一个约定是关于git回购时忽略的内容。它通常是关于忽略IDE或OS创建的文件和目录,一些生成的日志等。
然而,有一种力量倾向于对.gitignore文件进行非常规的更改。.gitignore文件可以被不负责任的人、错误地、被使用的工具或在其他情况下进一步更改。
为了有一个反作用力,我们可以这样做:
首字母。gitignore应该反映团队的惯例, 在它被压入之后,.gitignore应该通过添加.gitignore条目来确保安全,并再次压入该更改。.gitignore文件以这种方式被“密封”。
“密封的”.gitignore文件可以在本地进行更改,而无需将更改者传播给团队的其他成员。然而,如果一个变更在整个团队中得到了广泛的同意,那么就有可能“打开”它,改变它,然后再“密封”它。那不可能是错误的,只能是有意的。
可悲的是,你不能百分之百地保护自己不做蠢事,但这样做你已经尽了一切努力来防止蠢事发生。
如果你的团队规模相对较小,但拥有非常优秀的专业人员,那么这就不重要了,但即使是那些人也会因为少担心一件事而感激不尽。
当你不能对基础设施设置做任何事情时,使用.git/info/exclude很酷,只是覆盖你自己的一个**以免出错。
从正确和错误的角度来看,我赞成在。gitignore文件中加入。gitignore条目,让每个人都可以自由地在本地做任何他们想做的事情,但不侵犯他人。
其他回答
如果你想将被忽略的文件列表存储在Git树之外,你可以使用. Git /info/exclude文件。它只适用于你的回购结帐。
我发现忽略烦人的. ds_store文件的最佳位置是在.git/info/exclude文件中。
当您在IntelliJ中设置git存储库时,它似乎会自动执行此操作。
.gitignore文件应该在您的存储库中,因此它确实应该被添加和提交,正如git状态所建议的那样。它必须是存储库树的一部分,这样对它的更改就可以合并等等。
因此,将它添加到您的存储库中,它不应该被忽略。
如果你真的想要,你可以添加.gitignore到.gitignore文件,如果你不想让它被提交。然而,在这种情况下,最好将忽略添加到.git/info/exclude中,这是一个特殊的本地签出文件,它的工作方式就像.gitignore,但不会显示在“git状态”中,因为它在.git文件夹中。
参见https://help.github.com/articles/ignoring-files
如果有人已经在你的回购中添加了.gitignore,但你想对它做一些更改,并忽略这些更改,请执行以下操作:
Git update-index——assume-unchanged .gitignore
源。
以防别人和我们有同样的痛苦。 我们想要排除一个已经提交的文件。
这篇文章更有用: 使用.git/info/exclude太晚了
具体来说,你需要忽略一个文件实际上是使用命令git remove 参见git rm (http://www.kernel.org/pub/software/scm/git/docs/git-rm.html)
你通过去测试它
Git rm——dry-run *.log (如果你说想要排除所有日志文件)
这将输出如果运行它将被排除的内容。
then
你通过运行它
Git rm *.log (或任何你想要的文件名路径/表达式)
然后在.gitignore文件中添加*.log行。