Git: afficher plus de contexte lors de l'utilisation de git add -i ou git add -e?

99

Je valide sélectivement des parties d'un gros fichier et j'aimerais voir plus de contexte autour de chaque morceau. Est-ce possible?

Shawn J. Goff
la source

Réponses:

127

Réponse courte: non.

git diffa l' -U<n>option qui vous permet de personnaliser le nombre de lignes à afficher autour d'un changement. Par exemple, git diff -U5 ...affichera 5 lignes de contexte. Pour autant que je sache, une telle option n'est pas disponible pour l'affichage des différences en mode interactif.

Hammar
la source
7
Existe-t-il une -U<infinity>option pour afficher le fichier entier? (Ou est-ce qu'un grand nombre est "assez bon"?)
titaniumdecoy
2
Je voudrais mentionner que le nombre dans git diff -U<n>est utilisé des deux côtés de chaque ligne modifiée. Donc, si vous avez une ligne modifiée, git diff -U5vous montrera 11 lignes (en supposant que la ligne ne soit pas au début ou à la fin du fichier.)
ArtOfWarfare
4
Ceci est pour git diffpas pour git add --patchougit add --interactive
0xcaff
1
@titaniumdecoy, j'ai posté cela comme une question distincte stackoverflow.com/questions/28727424/…
Aleksandr Levchuk
3
Toujours pas de solution?
Vitaly Zdanevich
2

Pour confirmer, ce n'est toujours pas possible en 2019.

Un outil externe comme jjlee/git-meld-indexpeut aider:

git-meld-indexfonctionne meld- ou tout autre difftool git ( kdiff3, diffuse, etc.) - pour vous permettre de changements de scène interactive à l'indice git (également connu sous le nom de la zone de mise en scène git).

Ceci est similaire à la fonctionnalité de git add -p, et git add --interactive.

Dans certains cas, meld est plus facile / plus rapide à utiliser que git add -pla fonction de mise en scène d'outils tels que git gui.
C'est parce que meld vous permet, par exemple, de:

  • voir plus de contexte ,
  • voir les diffs intra-ligne
  • éditer à la main et voir les mises à jour des différences 'en direct' (mises à jour après chaque pression de touche)
  • accédez à un changement sans dire ` n` à chaque changement que vous souhaitez ignorer
VonC
la source