2016-11-13 76 views
4

我們即將從TFSVC轉移到git。我們目前的存儲庫已超過5年,包含約78000次提交。到目前爲止,我能夠擁有一個巨大的(〜10GB)完整克隆。這個倉庫將作爲我們新的git倉庫的基礎,並作爲一個只讀副本,用於研究舊倉庫。從TFSVC轉移到GIT - 具有部分歷史記錄的存儲庫?

由於尺寸大小,我們會使用BFG清理該回購併將其降至1GB,但仍然過大。 我們目前使用發佈分支,我們需要移動到新的系統與開發主幹和最後幾個發佈分支。舊的分支機構及其提交可以在10GB存儲庫中查找。

是否可以通過日期戳記來中斷新存儲庫的提交(又名歷史記錄)?我們確實希望大致保留最近6個月的提交和最新版本分支。

基本上歸結爲這樣一個問題:在真正成長几年之後,你如何維護你的git回購?可以說,每一年,我只想保持去年。你如何做到這一點?

我已經嘗試了一個淺層克隆,但不保留分支。

+1

你回購包含二進制文件? 1Gb真的很大(它不能只是來源) – Ivan

+0

是的,它包含一些二進制文件。克隆後可以將它們中的很多刪除。在那裏,我還需要一個較小的提交歷史,否則BFG和git filter-branch將永遠佔用 –

回答

0

正如我在 「Is it possible to do a shallow git clone based on datetime?」 所提到的,有可能在GIT 2.11(which will be released soon: 22 Nov. 2016,以及用於其there are previews already

git clone --shallow-since=<date> 

(參見git clone man page,和its test。在commit 994c2aa實現功能)

關於分支機構,請參閱「git shallow clone (clone --depth) misses remote branches」。但是如果一個遠程分支從之前的被請求的日期開始,該分支將不會進入淺層克隆。


基本上它歸結爲一個問題:你如何housekeep你的git回購若干年後,當它真正是生長?

keep an bundle爲檔案,fetch --depth我想成爲一個新的淺層克隆回購分公司。

+0

我已經完成了。根據我使用的日期我確實看到,回購中有更多或更少的對象。但我仍然看到整個歷史。 我怎樣才能削減提交? –

+0

@MichaelWagner你做到了嗎?這隻適用於尚未發佈的Git 2.11。你用過我提到的Git預覽版嗎?你在Windows上嗎? – VonC

+0

是的,我下載了預覽版本並使用它 –

相關問題