我有两个小的 git repos。这些项目都从不同的点开始,但收敛到一个非常相似的点(相同的文件名、文件夹结构等)。一个不是另一个的分支,但一个可以被认为是另一个的进化。
如果我可以将两者合并,那就太好了,这repo2
就是repo1
. 这可能吗,同时将历史添加repo2
到 's 的末尾repo1
?
我有两个小的 git repos。这些项目都从不同的点开始,但收敛到一个非常相似的点(相同的文件名、文件夹结构等)。一个不是另一个的分支,但一个可以被认为是另一个的进化。
如果我可以将两者合并,那就太好了,这repo2
就是repo1
. 这可能吗,同时将历史添加repo2
到 's 的末尾repo1
?
您可以将一个放入另一个:
$ cd project1
$ git config remote.project2.url /path/to/project2
$ git config remote.project2.fetch 'refs/heads/*:refs/project2/*'
$ git fetch project
这将为您提供两个(或更多)分支,其中包含 project1 和 project2 的历史记录。它们仍然是完全独立的,只是使用相同的对象存储。
然后(未测试),您可以使用移植文件(.git/info/grafts
),您可以在其中覆盖提交的父级(例如 project2 的第一个具有最新的 project1 的父级)
正如达斯汀在评论中所说,为了“使其永久化”,通过将 project2 提交重播到 project1 来进行 rebase。
您在“在项目中使用 Git (forking around) ”博客条目中还有另一个说明,尤其是“如何拉朋友和影响他人”部分。再次:
git checkout two_point_ooh
git remote add strelau git://gitorious.org/ruby-on-rails-tmbundle/mainline.git
git checkout -b strelau/two_point_ooh
git pull strelau two_point_ooh
是一个类似的过程,但对于分叉的存储库(这不完全是你的情况)