Git: mostra mais contexto ao usar git add -i ou git add -e?

99

Estou comprometendo seletivamente partes de um arquivo grande e gostaria de ver mais contexto em torno de cada pedaço. Isso é possível?

Shawn J. Goff
fonte

Respostas:

127

Resposta curta: não.

git difftem a -U<n>opção que permite personalizar o número de linhas a serem exibidas em torno de uma mudança. Por exemplo, git diff -U5 ...mostrará 5 linhas de contexto. Pelo que eu posso dizer, essa opção não está disponível para a exibição de diferenças no modo interativo.

Hammar
fonte
7
Existe uma -U<infinity>opção para mostrar o arquivo inteiro? (Ou um grande número é "bom o suficiente"?)
titaniumdecoy
2
Gostaria de mencionar que o número em git diff -U<n>é usado em ambos os lados de cada linha alterada. Então, se você tiver uma linha alterada, git diff -U5irá mostrar 11 linhas (assumindo que uma linha não esteja no início do final do arquivo.)
ArtOfWarfare
4
Isto é para git diffnão git add --patchougit add --interactive
0xcaff
1
@titaniumdecoy, postei isso como uma pergunta separada stackoverflow.com/questions/28727424/…
Aleksandr Levchuk
3
Ainda sem solução?
Vitaly Zdanevich,
2

Para confirmar, isso ainda não é possível em 2019.

Uma ferramenta externa como jjlee/git-meld-indexpode ajudar:

git-meld-indexcorridas meld- ou qualquer outro difftool git ( kdiff3, diffuse, etc.) - para permitir a mudanças de estágio de forma interativa para o índice git (também conhecida como área de teste do git).

Isso é semelhante à funcionalidade de git add -pe git add --interactive.

Em alguns casos, o meld é mais fácil / rápido de usar do que git add -po recurso de teste de ferramentas como git gui.
Isso porque o meld permite que você, por exemplo:

  • veja mais contexto ,
  • veja diffs intra-line
  • edite manualmente e veja as atualizações de diff 'ao vivo' (atualizadas após cada pressionamento de tecla)
  • navegue até uma alteração sem dizer ' n' para cada alteração que deseja pular
VonC
fonte