Rehacer la fusión de un solo archivo

112

Estoy en medio de una gran fusión y solía git mergetoolresolver todos los conflictos, pero todavía no me he comprometido, ya que primero quería asegurarme de que la fusión fuera correcta.

Resulta que cometí un error al resolver los conflictos en un archivo y me gustaría rehacer la resolución de conflictos git mergetoolen ese archivo. Como se trata de una gran fusión, me gustaría evitar rehacer la fusión en todos los demás archivos, ya que tengo entendido que tendría que hacerlo git merge --abort.

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

Hammar
fuente

Respuestas:

181

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

git checkout -m <file>

Esto devuelve el archivo a su estado en conflicto. Luego puedo ejecutar git mergetoolpara rehacer la fusión.

Hammar
fuente
2
Esto funcionó para mí. El índice terminó en un estado fusionado, pero mergetool no pensó que hubiera fusiones pendientes. Acabo de hacer la fusión usando vi, pero de todos modos fue extraño.
Chris Cleeland
1
¡gracias! esto es exactamente lo que se necesita. Por cierto, la fusión manual con vi siempre es un placer y una completa satisfacción. cambiar a la izquierda o a la derecha nunca me dio la confianza de que la fusión va como se esperaba
pregunta el
1
Hay algunos detalles adicionales útiles (con la misma respuesta) en la respuesta de esta pregunta duplicada .
Joshua Goldberg
-4

Siempre puede editar los archivos manualmente.

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

Todavía puede editar los archivos de forma segura y solo confirmar cuando esté completamente satisfecho.

Šimon Tóth
fuente