将一个 git 存储库的历史附加到另一个
Appending history of one git repository to another
如何将一个 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
我在考虑直接合并,或者清除一个文件,这样它就可以合并并将另一个合并到我清理过的存储库之上?
执行此操作的明智方法是什么?
干杯
你的问题非常适合做 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 步中,我基于 repo2/master
分支创建了一个名为 repo2temp
的新临时分支。接下来,我在 repo1/master
上重新设置这个看起来与 repo2/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
如何将一个 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
我在考虑直接合并,或者清除一个文件,这样它就可以合并并将另一个合并到我清理过的存储库之上?
执行此操作的明智方法是什么?
干杯
你的问题非常适合做 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 步中,我基于 repo2/master
分支创建了一个名为 repo2temp
的新临时分支。接下来,我在 repo1/master
上重新设置这个看起来与 repo2/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