你是否应该将.gitignore提交到Git回购中?

你认为将.gitignore提交到Git回购中是一个好做法吗?

有些人不喜欢它,但我认为它很好,因为你可以跟踪文件的历史。不是吗?

208657 次浏览

通常是的,.gitignore对于想要使用存储库的每个人都是有用的。有时你会想要忽略更私密的东西(也许你经常创建LOG或其他东西)。在这种情况下,你可能不想把它强加给其他人。

你通常提交.gitignore。事实上,当我不工作时,我个人会确保我的索引总是干净的。(git status应该什么都不显示。)

在某些情况下,您希望忽略与项目无关的内容。例如,您的文本编辑器可能会自动创建*~备份文件,或者另一个例子是由OS X创建的.DS_Store文件。

我想说的是,如果其他人抱怨这些规则使您的.gitignore变得混乱,请将它们排除在外,而是将它们放在全局排除文件中。

默认情况下,该文件位于$XDG_CONFIG_HOME/git/ignore(默认为~/.config/git/ignore),但可以通过设置core.excludesfile选项来更改此位置。例如:

git config --global core.excludesfile ~/.gitignore

只需创建和编辑全局排他文件到您的心脏的内容;它将应用于您在该机器上工作的每个git存储库。

.gitignore 至少是一个很好的实践,你的构建产品(程序,*。啊,等等)。

我把commit .gitignore,这是对其他可能构建我的项目的人的礼貌,下面的文件是派生的,应该忽略。

我通常做混合动力车。我喜欢让makefile生成.gitignore文件,因为makefile将知道与项目派生或其他相关的所有文件。然后签入一个顶级项目.gitignore,它将忽略由makefile为各个子目录创建的生成的.gitignore文件。

所以在我的项目中,我可能有一个bin子目录,其中包含所有构建的可执行文件。然后,我将让我的makefile为该bin目录生成一个.gitignore。在顶部目录。gitignore中列出了bin/.gitignore。上面那个是我登记入住的。

提交.gitignore可能非常有用,但你要确保以后不要修改太多,特别是如果你经常在分支之间切换。 如果你这样做,你可能会遇到这样的情况,文件在一个分支中被忽略,而在另一个分支中却没有,迫使你手动删除或重命名工作目录中的文件,因为签出失败,因为它会覆盖一个非跟踪的文件

因此,是的,提交你的.gitignore,但不是在你合理地确定它之后不会有太大变化之前。

对我来说,我认为将。gitignore文件提交到存储库是一个好主意。当有人克隆你的存储库并构建项目,或运行一些生成垃圾数据的测试时,可能不需要推送它.. gitignore文件只是忽略其中配置的文件。