我为什么要使用gitignore?

时间:2012-12-02 23:38:57

标签: git

目前,每当我创建一个我希望Git跟踪的文件时,我只需将其添加到索引中。如果我不将它添加到索引,Git就不会“看到它”。那么我为什么要使用gitignore文件,而不是只是不将它添加到索引中呢?

7 个答案:

答案 0 :(得分:9)

您通常会发现,当您的项目变大时,逐个添加每个文件会变得乏味。

在Java中,您可能最终会得到许多您不希望添加到存储库的.class个文件。同样,您最终可能会在C中使用许多.o个文件,或者在Python中使用.pyc(例如)。

*.class文件中使用*.o*.pyc.gitignore等模式可让您一劳永逸地忽略这些文件。后续的git status运行(或类似的,如果您使用的是GUI)将不会告诉您这些是新的,未跟踪的文件,从而让您专注于真正新的且明显未跟踪的文件。

如果您添加整个目录(例如git add myproject),这也很有用:这可以让您完全忽略一类文件。

答案 1 :(得分:7)

它隐藏了git status的文件。特别是对于很多生成的文件,你真的不希望它们一直出现在那里。它还可以防止您意外添加它们,例如在做git add somefolder时。

  

gitignore文件的目的是确保git未跟踪的某些文件保持未跟踪。

答案 2 :(得分:3)

  

gitignore文件的目的是确保git未跟踪的某些文件保持未跟踪。

http://git-scm.com/docs/gitignore

假设您从repo的根目录运行git add .,并且没有任何忽略。您刚刚将所有精神上忽略的文件添加到索引中。另一个好处是,使用版本控制的.gitignore,您可以确保其他人不会犯同样的错误。

答案 3 :(得分:1)

是的,以避免在GIT的远程存储库中提交不需要的文件。 只需在.gitignore文件中提供适当的说明,例如

如果我想避免使用扩展名为pyc文件或.class文件的文件, * .pyc文件 *的.class

我将这两行放在.gitignore文件中。在将来,我不需要为这些永远不会在GIT仓库中提交的文件而烦恼。

谢谢!

答案 4 :(得分:1)

添加每个文件并不乏味。例如,如果你有一堆新的.java文件,你可以这样做:

find . -name \*.java | xargs git add

当你有很多这些例外时,在.gitignore中保留所有可能的例外情况会很乏味。因此,当异常(不应该检入的文件的模式)很少时,.gitignore是有意义的,但是有很多模式的文件被检查,新文件会不断出现。但是,如果是另一种方式,我认为没有.gitignore,生活会更好。

答案 5 :(得分:0)

除了方便使用git commit -a之外,它还可以防止意外污染您的存储库或泄露敏感信息。

答案 6 :(得分:0)

将某些文件指定到.gitignore文件中的好处是,您可以提交所有跟踪文件一次,而不必担心意外添加的忽略文件。 例如,提交文件的速度要快得多:

git commit -a

而不是一个一个地添加...