我有一个旧的Git repo,叫它app
。然后,一年后,我想从头开始重建这个应用程序,所以我做了一个新的回购,取名为app-2
。
现在,我意识到我应该创建一个新的分支或其他东西,而不是一个新的存储库,因为我想将app-2
的历史转移到app
之上,然后删除app-2
,这样app
现在就可以拥有app
+ app-2
的所有历史。
这有可能做到吗?
更新:
我尝试通过删除app
中的所有文件( .git
目录除外)并提交来“重置”app
存储库。然后:
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
的提交
发布于 2012-04-28 01:22:57
你可以使用git的移植点来做这件事。首先从遥控器将app
的历史记录拉入app-2
,然后按照this answer中的说明进行操作。
发布于 2012-04-28 01:51:41
第一步是将两个应用程序放在一个库中;第二步是以某种合理的方式将它们合并。
对于第一步,我会说将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仓库中,您已经拥有了它的所有分支和所有app-2分支。假设你(想)认为app-2是从app派生出来的。然后,使用以下命令重新设置app上所有app-2的基础:
$ cd /path/to/app
$ git checkout app-2-master
$ git rebase master
这可能会涉及到很多解决冲突的工作,但git也会为你做大量的工作。
https://stackoverflow.com/questions/10355001
复制相似问题