USANDO UMA FERRAMENTA DIFF VISUAL
A resposta padrão (na linha de comando)
As principais respostas aqui mostram corretamente como visualizar as alterações em cache / faseadas no Index
:
$ git diff --cached
ou $ git diff --staged
que é um alias.
Iniciando a ferramenta Visual Diff
A resposta padrão cuspirá as alterações diff no git bash (ou seja, na linha de comando ou no console). Para aqueles que preferem uma representação visual das diferenças de arquivo em estágios, existe um script disponível no git que lança uma ferramenta visual diff para cada arquivo visualizado, em vez de mostrá-los na linha de comando, chamada difftool
:
$ git difftool --staged
Isso fará o mesmo git diff --staged
, exceto quando a ferramenta diff for executada (ou seja, toda vez que um arquivo for processado por diff), ele iniciará a ferramenta visual diff padrão (no meu ambiente, isso é kdiff3 ).
Após o lançamento da ferramenta, o script git diff será pausado até que a ferramenta visual diff seja fechada. Portanto, você precisará fechar cada arquivo para ver o próximo.
Você sempre pode usar difftool
no lugar dos diff
comandos in git
Para todas as suas necessidades visuais de diferenças, git difftool
funcionará no lugar de qualquer git diff
comando, incluindo todas as opções.
Por exemplo, para que a ferramenta visual diff seja iniciada sem perguntar se é necessário fazê-lo para cada arquivo, adicione a -y
opção (acho que geralmente você vai querer isso !!):
$ git difftool -y --staged
Nesse caso, ele abrirá cada arquivo na ferramenta visual diff, um de cada vez, exibindo o próximo após o fechamento da ferramenta.
Ou observe o diff de um arquivo específico que está preparado no Index
:
$ git difftool -y --staged <<relative path/filename>>
Para todas as opções, consulte a página do manual:
$ git difftool --help
Configurando a Ferramenta Visual Git
Para usar uma ferramenta visual git diferente da padrão, use a -t <tool>
opção:
$ git difftool -t <tool> <<other args>>
Ou, consulte a página de manual do difftool para saber como configurar o git para usar uma ferramenta visual diferente do padrão.
Exemplos de .gitconfig
entradas para vscode como ferramenta diff / merge
Parte da configuração de um difftool envolve a alteração do .gitconfig
arquivo, através de comandos git que o alteram nos bastidores ou a edição direta.
Você pode encontrá-lo .gitconfig
em seu diretório pessoal, como ~
no Unix ou normalmente c:\users\<username>
no Windows).
Ou, você pode abrir o usuário .gitconfig
no seu editor Git padrão com git config -e --global
.
Aqui estão exemplos de entradas no meu usuário global .gitconfig
do VS Code como ferramenta diff e ferramenta de mesclagem:
[diff]
tool = vscode
guitool = vscode
[merge]
tool = vscode
guitool = vscode
[mergetool]
prompt = true
[difftool "vscode"]
cmd = code --wait --diff \"$LOCAL\" \"$REMOTE\"
path = c:/apps/vscode/code.exe
[mergetool "vscode"]
cmd = code --wait \"$MERGED\"
path = c:/apps/vscode/code.exe
git status -v
funciona também Veja minha resposta abaixo