2012-12-02 60 views
12

目前,無論何時我創建一個我希望Git跟蹤的文件,只需將其添加到索引即可。如果我不把它添加到索引Git不會「看到它」。那麼爲什麼我應該使用gitignore文件,而不是將它添加到索引?我爲什麼要使用gitignore?

回答

8

您一般會發現,當您的項目變大時,逐個添加每個文件會變得乏味。

在Java中,最終可能會有許多不想添加到存儲庫的.class文件。同樣,最終可能會有多個C語言的.o文件,或Python中的.pyc(例如)。

有模式,如*.class*.o*.pyc.gitignore文件,讓你一勞永逸忽略這些文件。後續git status運行(或類似如果您使用的GUI)不會告訴你這些是新的,未跟蹤的文件,從而讓你專注於真正新的和明顯未追蹤的文件。

如果您添加一個完整的目錄(例如git add myproject),這也可能很有用:這可以讓您完全忽略一個文件類別。

6

它從git status隱藏文件。特別是有很多生成的文件,你真的不希望它們一直出現在那裏。它還可以防止您無意中添加當做git add somefolder

gitignore文件的目的是爲了確保某些未被git跟蹤的文件仍然未被跟蹤。

3

的gitignore文件的目的是爲了確保不混帳跟蹤某些文件仍然未被跟蹤。

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

說你從你的回購的根目錄下運行git add .,你什麼都沒有忽略。你剛剛在索引中添加了所有這些文件,你以前忽略了精神上。另一個好處是,使用版本控制的.gitignore,可以確保其他人不會犯類似的錯誤。

0

除了方便使用git commit -a之外,它還能防止意外污染您的存儲庫或暴露敏感信息。

0

指定.gitignore文件中的某些文件的好處是,您可以立即提交所有跟蹤文件,而不用擔心忽略了意外添加的忽略文件。 這是迄今爲止更快例如使用提交文件:

git commit -a 

,而不是逐一加入...

1

是的,爲了避免在GIT的遠程倉庫被提交不需要的文件。 只需在.gitignore文件中提供相應的描述,如

如果我想避免帶有pyc文件或擴展名的文件。class file然後, * .pyc * .class

我將這兩行放在.gitignore文件中。將來我不需要爲這些永遠不會在GIT倉庫中提交的文件而煩惱。

謝謝!

1

添加每個文件並不乏味。舉例來說,如果你有一堆新的.java文件,你可以這樣做:

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

保持在所有的.gitignore可能出現的異常,當你有很多他們的將是乏味的。所以.gitignore在異常(不應該被檢查的文件的模式)很少的情況下很有意義,但是有很多模式的文件被檢查並且新文件會不斷彈出。但是當它是另一種方式時,我認爲如果沒有.gitignore,生活會更好。