web-dev-qa-db-ja.com

Git MergeToolのデフォルトエディタとしてVisual Studioコードを使用する方法

今日、私はWindowsのコマンドプロンプトでgit mergetoolを使おうとしていましたが、VIMを使うのはデフォルトでは駄目だと気付きましたが、VSCodeを使うほうがいいです。

どうすればVisual Studio CodeをGitのマージコンフリクトを処理するための(または差分ツールとして)GUIとして使用できますか?

81
Eric D. Johnson

VSCode 1.1 Better MergeはVSCodeのコアに統合されました。

それらを結び付ける方法はあなたの.gitconfigを修正することですそしてあなたは2つのオプションを持ちます。

  1. (注:Iztok Delfinとe4racheで明確にされているように、Windows Git Bashでは"'に置き換えてください)

    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. これを行うには、.gitconfigVS Code付き に行を貼り付けます。

    • コマンドラインから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"'
      [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"
      

Gitディレクトリの中からgit mergetoolを実行してください、そして、多分、あなたはマージ競合を処理するのを手助けするVSCodeを持っています! (VSCodeを閉じる前に、必ずファイルを保存してください

Accept Incoming Change anyone?

コマンドラインからcodeを起動する方法については、 docs を参照してください。

git mergetoolの詳細については、これらをチェックしてください docs

165
Eric D. Johnson

二重引用符を単純な引用符に置き換える必要がありました。

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

それが正しく機能するために。
(二重引用符で囲むと、$ LOCALと$ REMOTEはそれらの値に置き換えられます)

WindowsのコマンドプロンプトではなくGit Bash for Windowsを使用している場合に必要です。

11
e4rache