Estamos migrando de SVN y también estamos fusionando varias ramas. Para simplificar masivamente, tenemos una rama B que se bifurcó hace mucho tiempo, y tiene un poco de desarrollo, digamos 8 archivos modificados, de cientos. Mientras tanto, grandes cambios han ocurrido en el maestro:Git: ¿Cómo fusionar una rama pequeña pero muy antigua?
A
|
X---(a few changes)--- B
|
|(hundreds of changes)
|
HEAD/master
Si hago "maestro git merge" de la rama, muchos conflictos de fusión se muestran, ya que B y la cabeza son muy diferentes ahora. Pero esto parece (ingenuamente, para mí) erróneo: B no está tan lejos del tronco, es solo un largo camino atrás en el tiempo.
¿Hay alguna manera de aprovechar este hecho? ¿Debo intentar y primero fusionar B de nuevo a X, luego de allí a HEAD? ¿Cuáles serían los comandos a:
- Identificar revisión X
- Ver diferencias entre B y X
- Combinar B con X
- actualización de esa nueva versión fusionada a la cabeza
Es Hay otro enfoque que las personas usan en estas situaciones?
(Es muy posible que me han dicho algunas cosas muy estúpidas y poco git-como en el anterior - no dude en punto a cabo :).)
¿Ha intentado crear un parche entre las dos ramas y aplicarlo a su cabeza actual. –
entre X y B, quieres decir? eso suena como lo que quiero hacer. ¿Puedes señalarme los comandos correctos? –
Dependiendo de lo que funcione mejor para usted, un par de ejemplos pueden ser git diff X..HEAD foo.cc> foo.patch o git diff X..HEAD> all.patch –