2011-03-04 22 views
75

En git, si tengo un par de trozos del mismo archivo organizado en mi índice, ¿cómo puedo interactivamente desestabilizar uno de ellos?¿Cómo desentierro interactivamente un trozo en particular en git?

¿Hay alguna alternativa para descomprimir el archivo completo, y luego volver a organizar los bloqueos que quiero mantener, o deshacer manualmente los cambios en la copia de trabajo, y luego agregar de forma interactiva esos cambios no realizados?

Respuesta

97

Probar git reset --patch filename; esto debería hacer lo contrario de git add --patch, según el documentation. La forma abreviada -p también funciona para ambos comandos.

+0

No creo que mi versión lo tenga (es 1.6.3.3), pero parece ser la respuesta correcta. –

+2

En ese caso (y suponiendo que no puede actualizar por alguna razón), le sugiero que use 'git stash save --keep-index' para guardar y restablecer sus cambios de copia de trabajo actuales. Luego, puede restablecer su archivo y deshacer los cambios que no desea. Si primero copias el archivo a alguna ubicación temporal, puedes usar 'diff' para guardar los cambios que deshagas. Luego, puede volver a agregar el archivo (no es necesario agregarlo de forma interactiva ya que guardó los otros cambios que no le interesaban). Usa 'git stash pop' para recuperar los cambios anteriores, y' diff' para aplicar los cambios que deshagas. Bastante engorroso ... :-( –

1

GitX tiene una interfaz de usuario agradable para los trozos unstaging de un archivo: enter image description here

El cliente oficial no se ha mantenido desde hace tiempo, pero a fork over at GitHub con más características es muy popular en algunos círculos. (blog post about it)

+1

Para los usuarios de Windows, [Extensiones de Git] (http://code.google.com/p/gitextensions/) tiene una interfaz de usuario similar. –

+3

También lo hace el 'git gui' incorporado, excepto que no estoy seguro de que use la palabra" nice ";) – MatrixFrog

+1

[SourceTree] (http://www.sourcetreeapp.com/) (Windows + Mac) también tiene una buena interfaz de usuario para esto. – chrnola

Cuestiones relacionadas