如何从大型git历史中进行切片,同时保持合并/重设基础的能力
我目前面临的是一个大型git存储库(我们称之为上游的如何从大型git历史中进行切片,同时保持合并/重设基础的能力,git,git-merge,git-rebase,Git,Git Merge,Git Rebase,我目前面临的是一个大型git存储库(我们称之为上游的),其提交可以追溯到10多年前。我不需要它的大部分历史。实际上,将分支从中分割出来,并将其转移到自己的回购协议中,并保持不时合并原始上游分支提交的能力就足够了。在我看来,这将保持回购规模较小 描述:来自 D' - E' upstream/release / A - B - C - D - E upstream/dev 到 并且能够git合并上游/发布或git重新设置myrepo/master的基础 我知道
),其提交可以追溯到10多年前。我不需要它的大部分历史。实际上,将分支从中分割出来,并将其转移到自己的回购协议中,并保持不时合并原始上游分支提交的能力就足够了。在我看来,这将保持回购规模较小
描述:来自
D' - E' upstream/release
/
A - B - C - D - E upstream/dev
到
并且能够git合并上游/发布
或git重新设置myrepo/master的基础
我知道myrepo/release
需要一些人工初始化。我已经尝试了很多git checkout--orphan--
,git rebase--on
等,但没有找到解决方案。也许有人能帮你想出一个好主意
谢谢,
Jens我想到了以下几点:
git checkout --orphan my_release D'
git add .
git commit -m "Started new history"
然后对整个上游/发布分支重新定基:
git checkout upstream/release
git rebase --onto my_release D' upstream/release
合并:
git checkout my_release
git merge upstream/release
这会产生新的提交ID,但将来可能会通过重定基来进行更新
这帮了大忙
git checkout my_release
git merge upstream/release