Mantenemos una aplicación web que tiene una rama maestra común y muchas ramas paralelas, una para cada instalación, cada una tiene algunos cambios específicos. El código fuente se administra en git y es una herramienta excelente cuando necesitamos transferir funciones y corregir errores de la rama maestra a las paralelas. Pero son pocos los archivos que son sensibles y la fusión automática suele dar malos resultados. Por lo tanto, la combinación sería mucho más fácil si se pueden marcar de alguna manera y cada combinación resultaría en un conflicto que requeriría una combinación manual.
Busqué una respuesta:
- Estoy usando las opciones de combinación --no-commit y --no-ff , pero no es lo mismo.
- Aquí y aquí alguien hace la misma pregunta pero sin solución.
- Un caso similar parece ser cómo evitar que el archivo se fusione usando .gitattributes que contienen: somefile.php merge = our . Intenté encontrar alguna opción de fusión que generara un conflicto o forzaría la fusión manual, pero no encontré ninguna hasta ahora.
- .gitattributes que contienen: somefile.php -merge nunca se fusiona automáticamente y por lo tanto obliga a la fusión manual. Es una solución al 90%, pero lo que busco es probar la fusión automática y marcarlo como conflicto sin importar si es exitoso o no. Pero esto es lo más cercano a la solución. (... gracias Charles Bailey por la aclaración ...)
- Alguien sugirió escribir un controlador de combinación personalizado ( 1 , 2 ), pero no tengo claro cómo hacerlo.
editar: variante 4. descripción
git fetch
primero, luego usogit difftool <file> FETCH_HEAD
, para poder aplicar manualmente el cambio en la rama remota a la local.