· ferramentas · 3 min read
Facilitando os merges no Git com o Visual Studio Code como merge tool e editor padrão
Existem ferramentas que facilitam nossa vida quando se trata de trabalhar com o Git. O Visual Studio Code, além de um excelente editor de textos, é uma delas.

O Visual Studio Code é uma ferramenta de edição de textos fantástica que se mostrou muito versátil e completa. Eu o uso no dia a dia para quase tudo e agora estou passando a inserir em outros contextos para me acostumar mais com o editor.
Para quem utiliza a linha de comando para rodar os comandos do Git, não a interface do Visual Studio Code, podemos rodar o comando git mergetool, quando queremos abrir uma ferramenta de merge em casos de conflitos. Podemos utilizar diversas ferramentas como o vimdiff, meld merge, Git Kraken e assim vai.
A um tempo atrás eu utilizava o Meld, que é uma ferramenta bem legal, multiplataforma e open source, e também recomendo para quem não utiliza o Code.
Caso aconteça um conflito em um merge, bastaria executar meld . e teríamos uma interface maneira para garantir que não estamos perdendo nada na correção, como na imagem abaixo.

O mesmo quando vamos fazer um commit e quem aparece é o Vim ou o Nano.
Agora e se quisermos fazer o mesmo, mas com o Visual Studio Code?
Configurando o Visual Studio Code como editor padrão no Git
Para configurar o VS Code como editor padrão, basta rodar o comando no terminal:
git config --global core.editor "code --wait"E quando precisarmos do editor, quem vai aparecer é o VS Code. Como nos casos de rebase, merge, commit, add -p, etc.
Para garantir que realmente houveram alterações, podemos rodar o comando que abre as configurações globais do Git no editor de textos e o VS Code irá abrir automágicamente:
git config --global -eConfigurando o Visual Studio Code como ferramenta de merge no Git
Agora, para adicionar o VS Code como nossa ferramenta padrão de merge, vamos rodar o comando git config --global -e e adicionar as linhas:
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGEDO arquivo final ficará parecido com este aqui:
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diffAgora basta rodar o comando git mergetool em um merge com conflitos.
Exemplo:
Digamos que eu acabei de rodar o git merge master em uma branch que estava desatualizada.
Ao rodar o git status vemos que aconteceu um conflito.

Podemos então rodar o git mergetool e o Visual Studio Code irá abrir com a interface para correção dos conflitos.

Aparecerá uma tela como essa:

Onde o que está em verde é o que temos em nossa branch e o que está em azul são as alterações que devemos escolher se aceitamos ou não.
Logo acima das alterações temos os botões para aceitar ou recusar uma alteração:
- Accept Current Change: Aceitar a mudança que temos localmente/em nossa branch atual
- Accept Incoming Change: Aceitar a mudança que estamos recebendo de outra branch/remoto
- Accept Both Changes: Aceitar ambas as alterações
- Compare Changes: Comparar as alterações
Conclusão
Se você estava procurando uma ferramenta para facilitar sua vida utilizando o Git, encontrou!
Estou utilizando o Visual Studio Code para quase tudo e não me arrependo. É uma ferramenta fantástica.
Se curtiu essa dica, não esquece de compartilhar com seus amigos e amigas, seu papagaio viciado em terminal que agora pode começar a utilizar o VS Code para visualizar mudanças com menos dificuldades e para todo mundo que você acha que pode gostar da sugestão.
Referências
Foto por Todd Quackenbush no Unsplash.