2016-11-13 80 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

是的,我下载了预览版本并使用它 –

相关问题