Jak używać Visual Studio Code jako domyślnego edytora dla Git MergeTool

Dzisiaj próbowałem użyć git mergetool w wierszu polecenia systemu Windows i zdałem sobie sprawę, że domyślnie używa się VIM , co jest fajne, ale wolałbym VSCode.

Jak mogę mieć Visual Studio Code funkcjonujący jako mój GUI do obsługi konfliktów scalania (lub nawet jako narzędzie różnicujące) dla Gita?

Author: Eric D. Johnson, 2017-06-14

2 answers

Od VSCode 1.13 Better Merge został zintegrowany z rdzeniem VSCode.

Sposobem na ich połączenie jest zmodyfikowanie .gitconfig i masz dwie opcje .

  1. Aby to zrobić z wpisami wiersza poleceń, wprowadź każdy z nich: (Uwaga: zamień " na ' W Windows Git Bash, jak wyjaśniono przez Iztok Delfin i 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. Aby to zrobić wklejając jakiś wiersz w .gitconfig Z KODEM VS .

    • Uruchom git config --global core.editor "code --wait" z linii poleceń.
    • Stąd możesz wprowadzić polecenie git config --global -e. Będziesz chciał wkleić kod w "dodatkowy blok" poniżej.

      [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"
      

Teraz z with w katalogu git z konfliktem run git mergetool i, tada, masz VSCode, który pomoże Ci poradzić sobie z konfliktem scalania! (Upewnij się, że Zapisz swój plik przed zamknięciem VSCode).

Czy ktoś akceptuje nadchodzące zmiany?

Aby dowiedzieć się więcej o uruchomieniu code z linii poleceń, zajrzyj do docs.

Aby uzyskać więcej informacji w git mergetoolsprawdź te dokumenty.

 100
Author: Eric D. Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-23 21:14:17

Musiałem zastąpić podwójne cudzysłowy prostymi cudzysłowami:

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

Aby działało prawidłowo.
(z podwójnymi cudzysłowami, $LOCAL i $REMOTE są zastępowane przez ich wartości)

Jest to potrzebne, jeśli używasz Git Bash Dla Windows zamiast wiersza polecenia systemu Windows.

 1
Author: e4rache,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-21 10:55:14