Git: ¿muestra más contexto al usar git add -i o git add -e?

99

Estoy comprometiendo selectivamente partes de un archivo grande y me gustaría ver más contexto alrededor de cada trozo. es posible?

Shawn J. Goff
fuente

Respuestas:

127

Respuesta corta: no.

git difftiene la -U<n>opción que le permite personalizar el número de líneas para mostrar alrededor de un cambio. Por ejemplo, git diff -U5 ...mostrará 5 líneas de contexto. Por lo que puedo decir, no existe tal opción disponible para la visualización de diferencias en el modo interactivo.

Hammar
fuente
7
¿Existe una -U<infinity>opción para mostrar el archivo completo? (¿O es un gran número "suficientemente bueno"?)
titaniumdecoy
2
Me gustaría mencionar que el número en git diff -U<n>se usa en ambos lados de cada línea modificada. Entonces, si ha cambiado una línea, git diff -U5le mostrará 11 líneas (suponiendo que la única línea no esté al principio o al final del archivo)
ArtOfWarfare
4
Esto es para git diffno para git add --patchogit add --interactive
0xcaff
1
@titaniumdecoy, publiqué eso como una pregunta separada stackoverflow.com/questions/28727424/…
Aleksandr Levchuk
3
¿Todavía no hay solución?
Vitaly Zdanevich
2

Para confirmar, esto todavía no es posible en 2019.

Una herramienta externa como jjlee/git-meld-indexpuede ayudar:

git-meld-indexcarreras meld- o cualquier otra difftool Git ( kdiff3, diffuse, etc.) - que le permiten a la etapa de cambios de forma interactiva para el índice git (también conocida como el área de ensayo GIT).

Esto es similar a la funcionalidad de git add -py git add --interactive.

En algunos casos, meld es más fácil / rápido de usar que git add -po la función de puesta en escena en herramientas como git gui.
Eso es porque meld te permite, por ejemplo,:

  • ver más contexto ,
  • ver diferencias intralínea
  • editar a mano y ver actualizaciones de diferencias 'en vivo' (actualizado después de cada pulsación de tecla)
  • navegue hasta un cambio sin decir " n" a cada cambio que desee omitir
VonC
fuente