如何将git存储库一分为二,但同时保留两者的git历史记录?
我有一个完全杂乱无章的存储库,它是一个很好的候选库,可以进行拆分和分离,以减少CI构建时间。但是,我希望在这两个存储库中保留当前Git历史记录,同时通过将这些主要更改提交给它们,从这两个存储库中删除我不再需要的部分如何将git存储库一分为二,但同时保留两者的git历史记录?,git,repository,Git,Repository,我有一个完全杂乱无章的存储库,它是一个很好的候选库,可以进行拆分和分离,以减少CI构建时间。但是,我希望在这两个存储库中保留当前Git历史记录,同时通过将这些主要更改提交给它们,从这两个存储库中删除我不再需要的部分 我想知道是否有一个合适的方法来做到这一点。我考虑过从当前的存储库中分出两个新的存储库,其中每个存储库在删除它们不想保留的组件方面都在发生变化?这是一种方法吗?或者这里最好的做法是什么?以下是我将如何做到这一点。我将使用original repo、new-repo1和new-repo2
我想知道是否有一个合适的方法来做到这一点。我考虑过从当前的存储库中分出两个新的存储库,其中每个存储库在删除它们不想保留的组件方面都在发生变化?这是一种方法吗?或者这里最好的做法是什么?以下是我将如何做到这一点。我将使用original repo、new-repo1和new-repo2作为存储库的替代:
cd ~
git clone original-repo new-repo1
cd new-repo1
git rm -r stuff-you-dont-want
git commit
cd ~
git clone original-repo new-repo2
cd new-repo2
git rm -r different-stuff-you-dont-want
git commit
现在,您将有两个不同的文件夹,其中包含两个不同的repo副本。然后,您可以更新源远程以指向不同的远程repo(例如,在Github上)
“从当前存储库中分叉两个新存储库…删除他们不想保留的组件”是的,这就是方法。
cd ~/new-repo1
git remote set-url origin new-repo1-url
git push -u origin master
cd ~/new-repo2
git remote set-url origin new-repo2-url
git push -u origin master