目前,每当我创建一个我希望 Git 跟踪的文件时,我只需将它添加到索引中。如果我不将它添加到索引中,Git 将不会“看到它”。那么我为什么要使用 .gitignore 文件,而不是不将其添加到索引中呢?
7 回答
您通常会发现,当您的项目变得更大时,一个一个地添加每个文件会变得乏味。
在 Java 中,您最终可能会得到许多.class
不想添加到存储库中的文件。同样,您最终可能会.o
在 C 或.pyc
Python(例如)中得到许多文件。
在您的文件中拥有像*.class
, *.o
,这样的模式可以让您一劳永逸地忽略这些文件。随后的运行(或类似的,如果您使用 GUI)不会告诉您这些是新的、未跟踪的文件,从而让您专注于真正新且明显未跟踪的文件。*.pyc
.gitignore
git status
如果您添加整个目录(例如 ),这也很有用git add myproject
:这可以让您完全忽略一类文件。
它将文件隐藏在git status
. 尤其是对于大量生成的文件,您真的不希望它们一直出现在那里。它还可以防止您意外添加它们,例如在执行git add somefolder
.
gitignore 文件的目的是确保某些未被 git 跟踪的文件保持未被跟踪。
gitignore 文件的目的是确保某些未被 git 跟踪的文件保持未被跟踪。
http://git-scm.com/docs/gitignore
假设您git add .
从存储库的根目录运行,并且您没有忽略任何内容。您刚刚将您之前在精神上忽略的所有文件添加到索引中。另一个好处是,通过版本控制.gitignore
,您可以确保其他人不会犯类似的错误。
除了使用方便之外git commit -a
,它还可以防止意外污染您的存储库或暴露敏感信息。
是的,为了避免在 GIT 的远程存储库中提交不需要的文件。只需在 .gitignore 文件中提供适当的描述,例如,
如果我想避免带有 pyc 文件或 .class 文件扩展名的文件,那么 *.pyc *.class
我将这两行放在 .gitignore 文件中。将来我不需要为这些永远不会在 GIT 存储库中提交的文件而烦恼。
谢谢!
添加每个文件并不乏味。例如,如果你有一堆新的 .java 文件,你可以这样做:
find . -name \*.java | xargs git add
当你有很多异常时,将所有可能的异常保存在 .gitignore 中会很乏味。因此,当异常(不应签入的文件模式)很少时,.gitignore 是有意义的,但是有许多文件模式需要检查并且新文件会定期弹出。但是当它是另一种方式时,我认为没有 .gitignore 的生活会更好。
将某些文件指定到文件中的好处.gitignore
是您可以一次提交所有跟踪的文件,而不必担心意外添加的忽略文件。使用例如以下方式提交文件要快得多:
git commit -a
而不是一一添加...