7

我有一个旧的 Git 存储库,称之为app. 然后,一年后,我想从头开始重建应用程序,所以我做了一个新的 repo,调用它app-2

现在,我意识到我应该只创建一个新分支或其他东西,而不是一个新的回购,因为我想将历史移到app-2顶部app然后摆脱,app-2这样现在就有了+app的所有历史。appapp-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

4

2 回答 2

1

您可以为此使用 git 的嫁接点。app首先从遥控器中提取历史记录app-2,然后按照此答案中的说明进行操作。

于 2012-04-27T17:22:56.657 回答
0

第一步是在一个仓库中获取两个应用程序;第二步是以某种合理的方式合并它们。

对于第一步,我会说将 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

现在,在应用程序存储库中,您拥有它的所有分支和所有 app-2 分支。假设您(想要)将 app-2 视为派生自 app. 然后你 rebase 所有 app-2 on app :

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

这可能涉及解决冲突的大量工作,但 git 也会为您完成大量工作。

于 2012-04-27T17:51:41.487 回答