我们有一个Git仓库,有7位贡献开发人员,拥有超过2.5年的历史和大约10,000次提交.我们使用Assembla推进和拉动.当我们添加新的开发人员时,将repo克隆到他们的dev计算机上需要将近一个小时.
我不确定这是否是正确的术语,但我们的目标是通过"削减/剪断"前1.5年的提交并仅保留最新的历史年份来"缩小"回购.我们希望保留整个仓库的"备份"副本,无论是作为单独的仓库还是分支?我们想在将来重复这一点,在需要的时候将初始拆分与新拆分合并,但我不确定这是否可行.如果有一种方法可以将所有历史记录保存在一个单独的分支上,并且仅保留master分支仅包含去年的历史记录,那将是很好的,但请告诉我可能的优缺点.
我不知道我们拥有的所有可能性/选项,这就是我在这里的原因.我读过一些关于patches但我不确定这是否真的是我需要的东西,或者是否有更好/更容易的东西.你们在做什么来照顾这样的问题,包括利弊?请记住,我仍然需要每个开发人员继续推拉,最好留在master分支机构.
提前致谢!
最好的分步说明可以在Git SCM博客文章"Replace Kicker"中找到.
简短的总结如下:
git branch history 哈希.git commit-tree.historycommit重新定位到新的基础上.master分支推送到服务器.git replace来重新连接历史.原始帖子用图片解释得更好.
在处理涉及合并的复杂历史时,这可能效果不佳,具体取决于合作的git rebase --onto效果--preserve-merges.显然你应该在继续之前测试好.