2011-07-28 18 views
72

Estoy en el medio de una combinación grande, y he usado git mergetool para resolver todos los conflictos, pero aún no me he comprometido, ya que quería asegurarme de que la fusión estaba bien primero.Rehacer fusión de un solo archivo

Resulta que cometí un error al resolver los conflictos en un archivo, y me gustaría volver a hacer la resolución del conflicto con git mergetool en ese archivo. Como se trata de una fusión grande, me gustaría evitar rehacer la fusión en todos los demás archivos, ya que entiendo que tendría que ver con git merge --abort.

Sé que podría simplemente editar el archivo manualmente, pero esto sería bastante tedioso y sería mucho más fácil simplemente rehacer la operación git mergetool. es posible?

Respuesta

108

Parece que estaba buscando en el lugar equivocado. La solución resultó ser bastante simple.

git checkout -m <file> 

Esto devuelve el archivo a su estado conflictivo. Entonces puedo ejecutar git mergetool para rehacer la fusión.

+2

Este tipo de trabajo funcionó para mí. El índice terminó en un estado fusionado, pero mergetool no pensó que existieran fusiones pendientes. Simplemente hice la fusión usando vi, pero de todos modos era extraño. –

0

Siempre puede editar los archivos manualmente.

Si está utilizando git merge --no-commit, entonces simplemente tendrá una combinación preparada (después de la fusión automática y semiautomática).

Puede editar los archivos de forma segura y solo cometer cuando esté completamente satisfecho.

+0

Tenía la esperanza de evitar esto, pero gracias de todos modos. – hammar