2011-02-23 7 views
13

hice un rebase en mi rama foo¿Por qué Git recuerda y usa una resolución de conflicto de una rebase abortada sin preguntarme?

git rebase master 

hecho un poco de resolución de conflictos, entonces decidí que no quiero hacerlo, y abortados.

git rebase --abort 

Todos los historiales de registro de ramificaciones parecen normales. Ahora quiero comenzar el mismo proceso nuevamente.

git rebase master 

Cuando git golpea el primer conflicto que se dio en el primer tiempo, se enumeran los archivos como en el conflicto al igual que lo hizo antes. PERO en lugar de marcar el conflicto con <<<<< etc., simplemente muestra el archivo en su estado después de resolver el conflicto por primera vez. Es interesante que tenga esta característica ... pero en realidad quiero resolver uno de los conflictos de forma diferente, por lo que no quiero que se recuerde y se vuelva a aplicar.

¿Qué es exactamente que está pasando aquí, y puedo desactivarlo?

+6

¿Se ha activado rerere? http://progit.org/2010/03/08/rerere.html – MForster

+0

ah ha-- Sí, lo encendí hace años y lo olvidé. parece que no hay una bandera que lo apague para una invocación particular de 'git rebase', es una lástima. –

+0

@admitruk no estoy seguro de que crear la etiqueta 'rerere' sea apropiado – CharlesB

Respuesta

8

puede utilizar la función "olvidar" de rerere para borrar una resolución de conflictos recordado.

+3

Gracias ... usted tiene que utilizar ... git rerere olvidar [nombre de archivo] _antes_ ejecutar el comando anterior si ha activado el rerere. – Clintm

+0

Por alguna razón se olvide no funcionaba para mí * (no sé por qué, no se informa de los errores) *, * olvidar todo *: 'rm-rf .git/rr-cache' - no es ideal, pero puede ser a mano, especialmente porque no pude encontrar una buena manera de olvidarlo todo. – ideasman42

9

uso git checkout --conflict=merge -- your_file para obtener la versión del archivo con los conflictos

Cuestiones relacionadas