2015-05-14 109 views
1

我意識到我的回購剛剛超過1GB,看起來我的.git文件夾重達800MB。爲什麼是這樣以及有什麼正確的方法來減少這種情況?降低Bitbucket上的回購大小

任何幫助表示讚賞。提前致謝!

+0

你有很大的PSD文件嗎?你有沒有嘗試過這些答案: https://stackoverflow.com/questions/15694034/why-is-my-git-file-huge, https://stackoverflow.com/questions/5613345/how-to -shrink-the-git-folder , https://stackoverflow.com/questions/1029969/why-is-my-git-repository-so-big – jojo

+0

另外,.git的哪個文件夾最大? – jojo

+0

@jojo對象文件夾。看起來我是一個白癡,一些相當大的拉鍊被添加到我的回購許多提交前。 – realph

回答

0

你的git的文件夾是臃腫不知何故,很可能是由於git的歷史或舊資產:

來源:http://blogs.atlassian.com/2014/05/handle-big-repositories-git/

  • 他們積累了非常非常長的歷史(項目的發展在很長一段時間和行李累積)。
  • 它們包括需要跟蹤並與代碼配對的巨大二元資產。
  • 以上兩者。

這裏有一些方法來補救:

影子clone方法

運行git clone --depth <# of commits of history> <remote-url>

過濾分支方法大型二進制文件或舊資產,像老的PSD

運行類似git filter-branch --tree-filter 'rm -rf /path/to/spurious/asset/folder' HEAD。當心過濾器分支可以重寫提交的歷史記錄,因此其他擁有舊版本存儲庫的用戶需要再次克隆它。在做這種方法之前警告你的同事!

上面的atlassian鏈接中有更多的方法和替代方法。

編輯:請確保創建您的原始回購的備份回購以防萬一!

0

而不是手動使用git filter-branch,我強烈推薦使用BFG(https://rtyley.github.io/bfg-repo-cleaner/),因爲它速度更快,可以幫助您擺脫更大的文件。該頁面上的說明很容易遵循。

但是,請注意,BFG只會將大文件從.git歷史記錄中刪除,前提是它們當前沒有提交到您的repo。在使用BFG之前,你應該使用

git rm --cached FILENAME 

任何大文件(如上面提到的大拉鍊)。如果你不再需要它們,你可以完全刪除它們。並記住要添加*.zip到您的.gitignore!