2012-04-02 11 views
16

Estoy usando git-rerere para su propósito previsto, para registrar las resoluciones de conflictos entre dos ramas (principal y una rama de tema) incrementalmente a medida que esas ramas se desarrollan, sin crear confusiones de fusión innecesarias. Sin embargo, incluso después de leer la página de manualidades de git-rerere, estoy un poco confuso cuando en realidad el registro de mi resolución de conflicto. Mi flujo de trabajo estándar para detectar y resolver nuevos conflictos de fusión es hacer git merge master desde la rama de tema, resolver los conflictos, luego organizar todos los archivos y confirmar la fusión con git commit -m "Finished test merge", y luego deshacer la fusión usando git reset --hard HEAD^, dejando atrás únicamente las resoluciones grabadas almacenadas por git-rerere.¿Tengo que comprometer una fusión para hacer que git-rerere grabe mi resolución de conflicto?

Sin embargo, esto parece un poco tonto. ¿Crear una confirmación y luego deshacerla solo para registrar la resolución? Después de leer la página de manual para git-rerere, aún no tengo muy claro cuándo registra mis resoluciones. ¿Es suficiente simplemente representar los archivos en conflicto o realmente necesito crear el compromiso de fusión después de resolver los conflictos, como he estado haciendo?

Respuesta

12

Desde la página de manual:

Running the git rerere command immediately after a conflicted automerge 
records the conflicted working tree files, with the usual conflict 
markers <<<<<<<, =======, and >>>>>>> in them. Later, after you are 
done resolving the conflicts, running git rerere again will record the 
resolved state of these files. 

Y:

As a convenience measure, git merge automatically invokes git rerere 
upon exiting with a failed automerge and git rerere records the hand 
resolve when it is a new conflict, or reuses the earlier hand resolve 
when it is not. git commit also invokes git rerere when committing a 
merge result. What this means is that you do not have to do anything 
special yourself (besides enabling the rerere.enabled config variable). 

por lo que no tiene que comprometerse y deshacer el envío de datos. Puede ejecutar git rerere sin parámetros para registrar la confirmación.

Cuestiones relacionadas