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