Como usar o Visual Studio Code como editor padrão do Git MergeTool




cmd visual-studio-code (2)

Hoje eu estava tentando usar o git mergetool no prompt de comando do Windows e percebi que estava usando o VIM por padrão, o que é legal, mas eu prefiro o VSCode .

Como posso ter o código do Visual Studio funcionar como minha GUI para lidar com conflitos de mesclagem (ou mesmo como uma ferramenta diferente) para o Git?


A partir do VSCode 1.13, o Better Merge foi integrado ao núcleo do VSCode.

A maneira de .gitconfig los é modificar o seu .gitconfig e você tem duas opções .

  1. Para fazer isso com as entradas da linha de comando, insira cada uma destas opções : (Nota: substitua " por ' no Windows Git Bash, conforme esclarecido por Iztok Delfin e e4rache)

    1. git config --global merge.tool vscode
    2. git config --global mergetool.vscode.cmd "code --wait $MERGED"
    3. git config --global diff.tool vscode
    4. git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
  2. Para fazer isso, cole alguma linha no .gitconfig com o VS Code .

    • Execute git config --global core.editor "code --wait" na linha de comando.
    • A partir daqui, você pode inserir o comando git config --global -e . Você deseja colar o código no "Bloco Extra" abaixo.

      [user]
          name = EricDJohnson
          email = [email protected]
      [gui]
          recentrepo = E:/src/gitlab/App-Custom/Some-App
      # Comment: You just added this via 'git config --global core.editor "code --wait"'
      [core]
          editor = code --wait
      # Comment: Start of "Extra Block"
      # Comment: This is to unlock VSCode as your git diff and git merge tool    
      [merge]
          tool = vscode
      [mergetool "vscode"]
          cmd = code --wait $MERGED
      [diff]
          tool = vscode
      [difftool "vscode"]
          cmd = code --wait --diff $LOCAL $REMOTE
      # Comment: End of "Extra Block"
      

Agora, no diretório git com um conflito, execute git mergetool e, tada, você tem o VSCode ajudando a lidar com o conflito de mesclagem! (Apenas certifique-se de salvar seu arquivo antes de fechar o VSCode).

Para ler mais sobre como iniciar o code partir da linha de comando, consulte estes docs .

Para obter mais informações no git mergetool consulte estes docs .


Eu tive que substituir as aspas duplas por aspas simples:

  git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'

para que funcione corretamente.
(com aspas duplas, $ LOCAL e $ REMOTE são substituídos por seus valores)

Isso é necessário se você estiver usando o Git Bash for Windows em vez do prompt de comando do Windows.





mergetool