连接两个Git仓库的历史?(Concatenate the history of two Git r

2019-09-16 20:12发布

我有一个旧的Git回购,把它app 。 于是,一年后,我想从头开始重新构建应用程序,所以我做了一个新的回购,称之为app-2

现在,我意识到我应该刚刚作出了一个新的分支或东西,而不是一个新的回购,因为我想移动的历史app-2之上app ,然后摆脱app-2这样app现在已经所有的历史app + app-2

这是可能的吗?

更新:

我试着“正在重置”的app通过删除所有文件回购app (除了.git目录),并作出承诺。 然后:

cd ~/Projects/app-2
git format-patch --stdout --root master > ../app/app-2-patches.txt
cd ../app
git am app-2-patches.txt

但是,我在那里我有分支机构的地方有冲突app-2

是否有可能从应用提交app-2同时保持历史的分支结构app-2

Answer 1:

还可以使用Git的嫁接点这个。 首先拉动的历史appapp-2从远程,然后按照例如,在说明这个答案 。



Answer 2:

第一步是获得一个回购的两个应用程序; 第二步是一些明智的方式合并。

在第一步中我会说推所有的存储库分支的APP-2在应用程序存储库分支:

$ cd /path/to/app-2
$ git remote add app-repo /path/to/app
$ git push app-repo master:app-2-master     # master in app-2 goes to app-2-master in app repo
# repeat for other branches in app-2

现在过的应用程序库中,您有它的所有分支机构和所有的应用程序,2个分支。 比方说,你(要)认为APP-2从应用程序的。 然后,你变基所有应用-2上的应用程序:

$ cd /path/to/app
$ git checkout app-2-master
$ git rebase master

这可能涉及大量的工作来解决冲突,但混帐也将被做工作的负荷为您服务。



文章来源: Concatenate the history of two Git repositories?