如何将一个git存储库的历史记录到另一个存储库? 我有两个类似的项目,我想合并的历史。 他们有点分歧,但基本上他们所做的工作现在是一样的,这就是我想要这样做的原因。
所以基本上我希望从中获取它:
repo1/master 1a----1b---1c--1d
repo2/master 2a--2b--2c-----2d
到此:
repo1/master 1a----1b---1c--1d-2a--2b--2c-----2d
repo2/master 2a--2b--2c-----2d
我想要直接合并,或者从一个文件中清除文件,这样它可以合并并将另一个合并到我清理过的存储库之上?
这是一种明智的方法吗?
干杯
答案 0 :(得分:1)
你的问题非常适合做git rebase
,这就是我要解决的问题:
git checkout repo2/master # step 1
git checkout -b repo2temp # step 2
git rebase repo1/master # step 3
git push origin repo2temp:repo1/master # step 4
首先,在步骤#1和#2中,我基于repo2temp
分支创建了一个名为repo2/master
的新临时分支。接下来,我在repo2/master
上重新定义此临时分支,该分支看起来与repo1/master
相同。在此步骤#之后,图表如下所示:
repo1/master 1a----1b---1c--1d
repo2temp 1a----1b---1c--1d--2a--2b--2c-----2d
在步骤#4之后,将已重新定位的repo2temp
分支推送到远程repo1/master
分支后,分支将如下所示:
repo1/master 1a----1b---1c--1d--2a--2b--2c-----2d
repo2temp 1a----1b---1c--1d--2a--2b--2c-----2d
repo2/master 2a--2b--2c-----2d