目前,無論何時我創建一個我希望Git跟蹤的文件,只需將其添加到索引即可。如果我不把它添加到索引Git不會「看到它」。那麼爲什麼我應該使用gitignore文件,而不是將它添加到索引?我爲什麼要使用gitignore?
回答
您一般會發現,當您的項目變大時,逐個添加每個文件會變得乏味。
在Java中,最終可能會有許多不想添加到存儲庫的.class
文件。同樣,最終可能會有多個C語言的.o
文件,或Python中的.pyc
(例如)。
有模式,如*.class
,*.o
,*.pyc
在.gitignore
文件,讓你一勞永逸忽略這些文件。後續git status
運行(或類似如果您使用的GUI)不會告訴你這些是新的,未跟蹤的文件,從而讓你專注於真正新的和明顯未追蹤的文件。
如果您添加一個完整的目錄(例如git add myproject
),這也可能很有用:這可以讓您完全忽略一個文件類別。
它從git status
隱藏文件。特別是有很多生成的文件,你真的不希望它們一直出現在那裏。它還可以防止您無意中添加當做git add somefolder
。
gitignore文件的目的是爲了確保某些未被git跟蹤的文件仍然未被跟蹤。
的gitignore文件的目的是爲了確保不混帳跟蹤某些文件仍然未被跟蹤。
http://git-scm.com/docs/gitignore
說你從你的回購的根目錄下運行git add .
,你什麼都沒有忽略。你剛剛在索引中添加了所有這些文件,你以前忽略了精神上。另一個好處是,使用版本控制的.gitignore
,可以確保其他人不會犯類似的錯誤。
除了方便使用git commit -a
之外,它還能防止意外污染您的存儲庫或暴露敏感信息。
指定.gitignore
文件中的某些文件的好處是,您可以立即提交所有跟蹤文件,而不用擔心忽略了意外添加的忽略文件。 這是迄今爲止更快例如使用提交文件:
git commit -a
,而不是逐一加入...
是的,爲了避免在GIT的遠程倉庫被提交不需要的文件。 只需在.gitignore文件中提供相應的描述,如
如果我想避免帶有pyc文件或擴展名的文件。class file然後, * .pyc * .class
我將這兩行放在.gitignore文件中。將來我不需要爲這些永遠不會在GIT倉庫中提交的文件而煩惱。
謝謝!
添加每個文件並不乏味。舉例來說,如果你有一堆新的.java文件,你可以這樣做:
find . -name \*.java | xargs git add
保持在所有的.gitignore可能出現的異常,當你有很多他們的將是乏味的。所以.gitignore在異常(不應該被檢查的文件的模式)很少的情況下很有意義,但是有很多模式的文件被檢查並且新文件會不斷彈出。但是當它是另一種方式時,我認爲如果沒有.gitignore,生活會更好。
- 1. 爲什麼不是我的gitignore工作?
- 2. 爲什麼我需要Iterator接口,爲什麼要使用它?
- 3. 爲什麼.gitignore無效?
- 4. 我爲什麼要用WinDbg?
- 5. 我爲什麼要用Drools?
- 6. 爲什麼我們要使用HttpContext.Current?
- 7. 爲什麼我們需要使用prompt.start()?
- 8. 我爲什麼要使用Spring Android?
- 9. 爲什麼我要使用靜態庫?
- 10. 爲什麼我不需要使用Adapter.notifyDataSetChanged()?
- 11. 我爲什麼要使用MVVM?
- 12. 我爲什麼要使用AWS RDS?
- 13. 我爲什麼要使用EMF?
- 14. 我爲什麼要使用glTranslate?
- 15. 我們爲什麼要使用NSOperationQueue?
- 16. 我爲什麼要使用POCO?
- 17. 爲什麼我們需要使用ExitWindowsEx
- 18. 爲什麼我需要使用Activator CreateInstance?
- 19. 我爲什麼要使用TRAP指令?
- 20. 爲什麼我要使用PHP框架
- 21. 我爲什麼要使用io_service :: work?
- 22. 爲什麼我需要使用超時?
- 23. 爲什麼我需要使用stopPropagation()?
- 24. 我爲什麼要使用DataForm?
- 25. 我爲什麼要使用java容器?
- 26. 我爲什麼要使用CSS3按鈕?
- 27. 我爲什麼要使用Flex?
- 28. 我爲什麼要使用AsyncCallback?
- 29. 爲什麼要使用Windows.Forms.Timer?
- 30. 爲什麼要使用Mockito?