¿Pueden dos repositorys git idénticamente estructurados fusionarse cuando nunca han tenido un historial común?

Tengo dos pequeños repositorys git. Los proyectos comenzaron desde diferentes puntos pero convergieron a uno muy similar (los mismos nombres de file, estructura de carpetas, etc.). Uno no es una twig del otro, pero uno puede considerarse una evolución del otro.

Sería bueno si pudiera fusionar los dos para que repo2 sea ​​la continuación de repo1 . ¿Es esto posible, al time que agrega el historial de repo2 al final de repo1 ?

Puedes search uno en otro :

 $ cd project1 $ git config remote.project2.url /path/to/project2 $ git config remote.project2.fetch 'refs/heads/*:refs/project2/*' $ git fetch project 

Eso le dará dos (o más) twigs, que contienen la historia del proyecto1 y del proyecto2. Todavía son completamente independientes, solo usa la misma tienda de objects.

Luego (no probado), puede usar un file de injerto ( .git/info/grafts ) donde podría sobrescribir la paternidad de un commit (como el primero de project2 que tiene para parent el último de project1)

Como Dustin dice en los comentarios, una rebase está en order para "hacerlo permanente", al repetir project2 commits en project1.


Tiene otra ilustración en esta input de blog " Usar Git dentro de un proyecto (bifurcando) ", especialmente la sección "Cómo atraer amigos e influenciar a las personas". De nuevo:

 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 

es un process similar, pero para repositorys bifurcados (que no es exactamente su caso)