我有两个小git回购.这些项目都是从不同的点开始,但汇聚到一个非常相似的项目(相同的文件名,文件夹结构等).一个不是另一个的分支,但可以认为一个是另一个的演变.
如果我可以将两者合并,那将是很好的,这repo2
是继续repo1
.这是否可能,同时将历史记录添加repo2
到结束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)
正如Dustin在评论中所说的那样,通过将project2提交重放到project1上,为了"永久化",需要使用rebase.
您还有另一个例子:" 在项目中使用Git(分叉) "博客条目,尤其是"如何吸引朋友和影响人"这一部分.再次:
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
是一个类似的过程,但对于分叉的存储库(这不完全是你的情况)