2010-06-24 25 views
5
$ git checkout to-branch 
$ git merge from-branch 
$ git status | grep unmerged 
# file1 unmerged 
# file2 unmerged 
# file3 unmerged 
$ vi file1 
$ git add . 

Eek! No quise decir "git add". ¡Quise decir "git add file1"!Cómo deshacer "git add" durante una fusión?

Ahora no puedo obtener un comportamiento como:

$ git show :1:file2 

Traté:

$ git reset file2 

y

$ git checkout -m file2 

pero ninguno de esos retornos ARCHIVO2 a un estado "sin combinar" . El estado de git no lo muestra como no compartido y no tengo acceso a "git show: 1: file2", etc. Quiero volver a poner el archivo en el estado no compartido.

¿Cómo puedo volver al estado en el que estaba antes de "agregar git"? sin perder mis cambios al archivo1?

Respuesta

10

(no probado) ¿Usted intentó

git checkout -m /path/to/file2 
git checkout -m /path/to/file3 

?

Al momento de pagar caminos del índice, esta opción le permite recrear la fusión en conflicto en las rutas especificadas

Si esto no funciona, puede que tenga algunas otras respuestas en la pregunta SO " How do I get my git merge conflicts back after merging incorrectly? "

+0

Gracias. Esto le da el archivo con conflictos de combinación pero no actualiza lo que sea que git esté usando para rastrear conflictos de fusión para que el estado de git no muestre el archivo como no agotado y git show: 1: archivo2, etc. no lo haga trabajo. Echaremos un vistazo a la otra pregunta. –

+0

+1, Cool - No sabía acerca de esta característica oscura. Acabo de probar con él y parece funcionar como se anuncia. –

1

Por si alguien todavía está teniendo este problema (como lo hice hace un momento), puede (ahora) hacer esto:

git update-index --unresolve file2 file3