Github忽略文件設置經驗


有很多文件不必使用git管理。例如Eclipse或其他IDE生成的項目文件,編譯生成的各種目標或臨時文件等。使用git status時,會在Untracked files里面看到這些文件列表,在一次需要添加的文件比較多時(使用git add . / git add -u),會把這些所有的未跟蹤文件添加進索引。

 
============一些牢騷============
     於是自然想要告訴git把這些文件忽略,我們當然會想到去Google,輸入本文標題這個關鍵字(一部分人會直接去看document),然后當然會有很多解決方案,多數告訴我們在.gitignore文件中添加待忽略的文件目錄列表;照做,問題很有可能依然存在。
     再Google,這次可能找到了help.github.com或stackoverflow上,看到一些原文的討論;其中講到在向.gitignore添加忽略文件之前一定要保證那些文件未被git跟蹤,即先使用命令git rm --cached filename將它們從索引中刪除。終於看到靠譜的解決方案不禁暗喜,照做--敲一下git status試試,問題很有可能仍然存在。
     太多中文“技術資料”是復制照搬過來的,轉載的人自己並沒有試過;稍好一點的在英文社區看到了相關討論,隨手翻譯了一下發過來,可能存在理解上的問題或者忽略了一些細節,導致依然沒辦法解決問題。
     所以搜索引擎給出的中文的結果,有很多對解決問題絲毫無用的。Git忽略文件是很普遍也應該是很簡單的一個問題,但多數帖子根本連這個問題都沒搞明白,於是引發了這一系列的牢騷。
     遇到問題要多思考,想想問題的本質,解決方法的原理;最重要的是要切實地去動手做。
============牢騷結束============
 
解決方案:
1. 本地倉庫忽略
本地倉庫的文件忽略規則可以在.git/info/exclude文件中添加。這些忽略的文件不會提交到共享庫中,因而不會被協作者所共享。
 
2. 當前工作目錄添加文件忽略
對於每一級工作目錄,創建一個.gitignore文件,向該文件中添加要忽略的文件或目錄。 但在創建並編輯這個文件之前,一定要保證要忽略的文件沒有添加到git索引中。使用命令 git rm --cached filename將要忽略的文件從索引中刪除。
--摘抄.gitignore的格式規范
• 所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略。
• 可以使用標准的 glob 模式匹配。
• 匹配模式最后跟反斜杠(/)說明要忽略的是目錄。
• 要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。
所謂的 glob 模式是指 shell 所使用的簡化了的正則表達式。星號(*)匹配零個或多個任意字符;[abc] 匹配任何一個列在方括號中的字符(這個例子要么匹配一個 a,要么匹配一個 b,要么匹配一個 c);問號(?)只匹配一個任意字符;如果在方括號中使用短划線分隔兩個字符,表示所有在這兩個字符范圍內的都可以匹配(比如[0-9]表示匹配所有 0 到 9 的數字)。
2.1 工作目錄的每一層下級目錄都可以有一個.gitignore文件,以說明當前目錄下需要被git忽略的文件或目錄
2.2 .gitignore文件可以被提交到共享庫中被協作者共享
 
3. 全局的.gitignore
可以通過創建~/.gitignore_global並添加到git全局配置以減少每層目錄的規則重復定義。使用命令 git config --global core.excludesfile ~/.gitignore_global即可
.gitignore_global文件范例
Ruby代碼   收藏代碼
  1. <span style="font-size: small;"># Compiled source #  
  2. ###################  
  3. *.com  
  4. *.class  
  5. *.dll  
  6. *.exe  
  7. *.o  
  8. *.so  
  9.   
  10. # Packages #  
  11. ############  
  12. # it's better to unpack these files and commit the raw source  
  13. # git has its own built in compression methods  
  14. *.7z  
  15. *.dmg  
  16. *.gz  
  17. *.iso  
  18. *.jar  
  19. *.rar  
  20. *.tar  
  21. *.zip  
  22.   
  23. # Logs and databases #  
  24. ######################  
  25. *.log  
  26. *.sql  
  27. *.sqlite  
  28.   
  29. # OS generated files #  
  30. ######################  
  31. .DS_Store  
  32. .DS_Store?  
  33. ._*  
  34. .Spotlight-V100  
  35. .Trashes  
  36. Icon?  
  37. ehthumbs.db  
  38. Thumbs.db  
  39. </span>  

 

 References:

2. 初次使用git-忽略某些文件,  http://www.phperblog.net/?p=173
3. git ignore file, Git增加忽略文件,  http://www.cnblogs.com/wucg/archive/2011/08/16/2141647.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM