Git: ¿cómo puedo fusionar dos twigs resolviendo conflictos de combinación solo en los nodos de la punta?

Aquí está mi tree con dos twigs: perro y gato.

A - B - C - D <- dog | E - F - G - H - I - J - K - L <- cat 

Cada letra es un compromiso. Estoy trabajando en Branch Cat, y necesito get todos los cambios actualizados de Branch Dog.

Los commands que estoy haciendo son:

 git checkout cat git rebase dog 

Ahora estoy resolviendo conflictos de fusión para resolver, pero parece que me está pidiendo que resuelva los conflictos de fusión al fusionar A & L, B & L, C & L, y D y L. Solo quiero resolver los conflictos para fusionar D & L, ya que todo en A, B y C ya se refleja en D. ¿Hay alguna manera de hacer esto?

Una rebase básicamente deshará todos tus cambios (EL), actualizará tu código a D, luego hará todos tus cambios (EL) encima de D. Eso no es realmente lo que estás buscando.

Creo que deberías hacer una fusión git.

 git checkout cat git merge dog 

De la página man de git-merge:

Incorpora los cambios de los commits nombrados (desde el momento en que sus historiales divergieron de la twig actual) en la twig actual. Este command es utilizado por git pull para incorporar cambios desde otro repository y puede usarse a mano para fusionar los cambios de una twig a otra.

  Assume the following history exists and the current branch is "master": A---B---C topic / D---E---F---G master Then "git merge topic" will replay the changes made on the topic branch since it diverged from master (ie, E) until its current commit (C) on top of master, and record the result in a new commit along with the names of the two parent commits and a log message from the user describing the changes. A---B---C topic / \ D---E---F---G---H master