Git fusión de tres vías con problema de novato conflicto leyendo el libro

Recién comencé a aprender el control de la versión de git y me enfrento a este problema. Dada la siguiente estructura de twig (tomada del libro gratis):

estructura de la rama

Supongamos que C4 / C5 commits cambió la misma parte del file index.html .

 git checkout master git merge iss53 

Si lo entiendo correcto, necesito resolver el conflicto manualmente. El libro dice algo sobre un file de conflicto. ¿Dónde está este file de conflicto? Y cómo, dado el siguiente conflicto:

 <<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html 

¿Puedo descartar todos los cambios de HEAD, fusionando solo los cambios de la twig "iss53" en "master"? ¿Cómo editar estas líneas?

Las líneas en conflicto estarán en el file con el conflicto. Entonces, si su file index.html tiene conflictos, puede simplemente abrirlo en un editor de text para get la vista que tiene arriba.

Querrá eliminar las líneas que no necesita (y / o realizar cambios) y luego save el file. Luego git add index.html , y git merge --continue .

Alternativamente, analice el uso de git mergetool http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

El libro dice algo sobre un file de conflicto. ¿Dónde está este file de conflicto?

No hay un "file de conflicto", solo hay files y pueden estar en conflicto si ambos padres de una combinación han realizado cambios en un file que no se puede fusionar automáticamente. En este caso, debe resolver manualmente los conflictos editando el file, o (vea a continuación) revisando una de las dos versiones principales del file.

¿Y cómo … puedo descartar todos los cambios de HEAD, fusionando solo los cambios de la twig "iss53" en "master"?

Durante una fusión, puede usar git checkout --theirs index.html para descartar los cambios y usar la versión que se está fusionando. Después de hacerlo, el file seguirá marcado como en conflicto, y tendrá que git add index.html para marcar el conflicto como resuelto.