Mi repositorio de Git tiene dos archivos, alpha
y beta
, con contenido idéntico.Git rebase después de la fusión confundido sobre el archivo eliminado
Si elimino alpha
en mi rama principal y lo edito en mi rama de características, cuando fusiono el maestro en función, me advierten acerca de un conflicto. Supongamos que resuelvo esto eliminando alpha
.
si yo rebase mi rama de la característica en maestro usando git rebase master
, alpha
es borrado, pero los cambios que he realizado a alpha
en la rama de la característica se aplican ahora a beta
! Recibo una advertencia de conflicto pero se resuelve felizmente con una fusión automática sin que la confirmación se bloquee para que la revise.
Curiosamente, si hago un git rebase -i
y acepto el valor predeterminado, beta
no se edita y puedo resolver el mismo conflicto que resolví en el momento de la fusión.
Tres preguntas relacionadas a continuación:
- ¿Por qué Git que el cambio me presenté a un archivo debe ser aplicado a otro, cuando el otro no ha sido editado por cualquier comprometerse?
- ¿Cómo puedo evitar este tipo de situación?
- ¿Por qué el comportamiento es diferente para una base de datos interactiva, incluso cuando tomo las opciones predeterminadas?
Estoy ejecutando Git 1.7.9 en Cygwin en Win7. He puesto un transcript on pastebin mostrando esto comenzando con un git init
en un directorio vacío, si alguien quiere ver los detalles por sí mismo (no lo estoy publicando aquí debido a la longitud).
Otra posible solución sería jugar con la opción 'rename-threshold' de la estrategia' recursive'. Ajustándolo a 'M100%', debería resolver el problema con la mala suposición. –
Gracias @GabrielePetronella. Eso me lo resolvió – thehouse