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?

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.