2011-03-02 6 views
14

Si realicé dos cambios lógicos, que son continuos en el código. Git lo muestra como un solo trozo mientras agrega de forma interactiva.Commitir Trozos parciales en Git

¿Hay alguna manera de agregar específicamente solo unas pocas líneas en un trozo, durante add --patch?

+2

Esta pregunta posiblemente duplique http://stackoverflow.com/questions/2333828/splitting-up-a-git-commit-int-phases-how-to-manually-intervene. La respuesta a esa pregunta agrega detalles adicionales útiles, también (el truco 'git stash --keep-index'). –

Respuesta

24

El git add --patch mode tiene la opción de dividir un trozo individual o editar un trozo individual.

git add --patch:

s - split the current hunk into smaller hunks 
e - manually edit the current hunk 

No que resolver su problema con respecto a su conjunto continuo de líneas?

Después de añadir los parciales de cometer, el usuario debe utilizar SOLAMENTE git commit cometer, utilizando git commit -a o el uso de cometer con all files bandera ignora añadió parcial y compromete a todos los archivos en escena.

+0

Gracias, Exactamente lo que quería ... –

+0

Nota: Para mí, no fue suficiente para confirmar a través de 'git commit' (no' git commit -a') después de agregar solo algunos trozos al índice. A pesar de que 'git diff' y' git diff --cached' estaban dando el resultado esperado, así como 'git status', la emisión de' git commit' agregó todos los cambios al commit. Tuve que usar 'git stash --keep-index' antes, para esconder temporalmente los demás cambios, para confirmar parcialmente, y luego' git stash pop' para volver a agregarlos a la copia de trabajo. Msysgit 1.7.11 @ WinXP. YMMV. –