如何控制git庫的膨脹?
02-04
作為版本配置管理員,目前項目從svn遷移到git上大概四個月時間,因為經常性的有二進位文件合入,導致git庫迅速從2G體積膨脹到8G,在遠端庫其實還好,關鍵造成了兩個問題。
1各個貢獻者克隆新代碼時間變長。2持續集成伺服器上存儲耗盡。求助,如何有效的減小git庫體積,或者有沒有辦法只更新工作區,而不在.git中保留整個庫的歷史。
提問者說repo持續增大的原因是不斷有二進位文件commit進去,而這些二進位文件是參與構建的lib。
git是一個SCM工具——source configuration management,正確的使用方法是只存放source(源碼),不存放artifact(製成品)。只存放source的話,git repo一般大不到哪裡去。
那麼構建過程中需要依賴的lib放在哪裡呢?放在artifact repository(倉庫)里。這需要構建系統/依賴管理系統的配合,如果是Java開發,maven/ivy/gradle都支持從repository中下載依賴的lib,以及將編譯生成的artifact發布到repository去。其他的編程語言基本上也有類似的工具。http://blogs.atlassian.com/2014/05/handle-big-repositories-git/
二進位如果硬要 check-in 的話用 git-lfs 拓展。這個東西可以自己搭。
這應該是最不影響目前操作習慣的方法……把cmo的工作交給別人
git gc --auto //git垃圾回收
嘗試使用.gitignore文件。
推薦閱讀:
※如何在 GitHub 下載某個程序的特定版本(代碼)?
※gitlab 與walle配合搭建,無法檢測,請教一下這個是什麼原因?
※Git如何在本地查看遠端倉庫超前本地提交的日誌信息?僅僅是日誌信息哦
※關於git cherry-pick的問題?
TAG:Git |