Подтвердить что ты не робот

Как использовать код Visual Studio в качестве редактора по умолчанию для Git MergeTool

Сегодня я пытался использовать git mergetool в командной строке Windows и понял, что он по умолчанию использует VIM, что классно, но я бы предпочел VSCode.

Как я могу использовать Visual Studio Code в качестве моего графического интерфейса для обработки конфликтов слияния (или даже как инструмент для сравнения) для Git?

4b9b3361

Ответ 1

От VSCode 1.13 Better Merge был интегрирован в ядро ​​VSCode.

Способом их соединения является изменение вашего .gitconfig, и у вас есть два варианта.

  • Чтобы сделать это с помощью записей в командной строке, введите следующие данные:

    • git config --global merge.tool vscode
    • git config --global mergetool.vscode.cmd "code --wait $MERGED"
    • git config --global diff.tool vscode
    • git config --global difftool.vscode.cmd "code --wait --diff $LOCAL $REMOTE"
  • Чтобы сделать это, вставив некоторую строку в .gitconfig с VS-кодом.

    • Запустите git config --global core.editor "code --wait" из командной строки.
    • Здесь вы можете ввести команду git config --global -e. Вы захотите вставить код в "Дополнительный блок" ниже.

      [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"'
      [code]
          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"
      

Теперь из каталога git с конфликтом run git mergetool и, tada, у вас есть VSCode, помогающий справиться с конфликтом слияния! (Обязательно сохраните файл перед закрытием VSCode).

Принять входящего изменения кого-нибудь?

Для дальнейшего чтения при запуске code из командной строки найдите в этих docs.

Для получения дополнительной информации в git mergetool ознакомьтесь с этими docs.