En los conflictos de fusión de git, ¿cómo guardo la versión que se está fusionando?

Tengo dos twigs git locales en mi máquina: una twig llamada "v2" y una twig llamada "maestra". Estoy fusionando v2 en el maestro, mientras que el maestro está desprotegido y la twig principal.

Me gustaría fusionar la twig "v2" en la twig "principal". Cuando realizo la fusión, hay una serie de conflictos que debo resolver uno por uno.

Para cada conflicto, ¿cómo guardo el file de la twig "v2" y no la versión de la twig "maestra" del file?

Las opciones que me presenta Git Tower para este tipo de conflictos son:

  • Marcar FILENAME como resuelto manualmente
  • Resolver manteniendo el NOMBRE DEL ARCHIVO
  • Resolver borrando FILENAME
  • Restaurar su versión de FILENAME
  • Abrir en una aplicación externa

Desde mi punto de vista, la opción de "conservar" el file significaba mantener la versión "v2" (la que se fusionaba) y "eliminar" el file significaba no agregar la versión "v2" (pero manteniendo la versión "maestra" existente) ) Sin embargo, cuando utilicé la opción eliminar, en realidad borró el file del repository.

¿Cómo guardo el file de twig "v2" y no la versión de twig "maestra" del file para este tipo de conflictos?

Aunque está utilizando Git Tower, puede desplegarlo en la línea de command y usar

git checkout --theirs file.txt 

Aquí algunos documentos al respecto:

http://gitready.com/advanced/2009/02/25/keep-either-file-in-merge-conflicts.html

Si desea SOLAMENTE usar git tower, complete la combinación tal como está, luego revise la versión de la otra twig de ese file. Ahora prepara y comprométete con la enmienda , si es posible.

Git ha sido desarrollado para ser una herramienta de línea de command. Con cada otra herramienta que he usado, siempre tuve un vacío en la funcionalidad. Elegí abrazar en lugar de luchar contra el layout de Git.

Además, podría conectar algo como Beyond Compare y elegir "herramienta externa" como se menciona en su pregunta. Allí, tendrás la opción de elegir el lado "de ellos".

Si está buscando mantener v2 sin problemas (quiero que el maestro se vea exactamente como v2), creo que la manera más fácil es:

  • Verifica la sucursal que deseas fusionar
  • Combinar maestro en la sucursal con ours estrategia
  • Maestro de pago
  • Fusionar la twig

Se vería así:

 git checkout v2 git merge -s ours master git checkout master git merge v2 

Si solo desea que este tipo de resolución ocurra solo en conflictos, entonces puede hacer:

 git checkout master git merge -s recursive -Xtheirs v2 

Puede leer estrategias de fusión en la documentation de git aquí .

ACTUALIZACIÓN : desafortunadamente, no creo que Git Tower expone una forma de hacer esto todavía. 🙁