tmegos blog

Web developer

Visual Studio Codeをgitのmergetoolとして使うと捗る

こんな感じでグラフィカルに表示されていい感じです!
f:id:tmegos:20180924212944p:plain

~/.gitconfigまたはリポジトリ.git/configの設定

[merge]
        tool = vscode
[mergetool]
        prompt = false
        keepBackup = false
[mergetool "vscode"]
        # cmd = 'VSCodeのパス' \"$MERGED\"
        # 例:Macの場合
        cmd = '/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code' \"$MERGED\"
        trustExitCode = false

使い方

コンフリクトが発生したときに、git mergetoolVSCodeが立ち上がります

$ git merge master
Auto-merging index.js
CONFLICT (content): Merge conflict in index.js
Automatic merge failed; fix conflicts and then commit the result.
$ git mergetool

初期状態

f:id:tmegos:20180924212944p:plain

現在の変更を取り込む --ours

f:id:tmegos:20180924213337p:plain

入力側の変更を取り込む --theirs

f:id:tmegos:20180924213649p:plain

両方の変更を取り込む

f:id:tmegos:20180924213724p:plain

※コード的にはNGなので例が悪かった…

変更の比較

f:id:tmegos:20180924213210p:plain

備考

  • マージ中も「元に戻す」、「やり直す」ができます
  • VSCodeは1ファイルごとに立ち上がります
    コンフリクトしているファイルが複数の場合は、
    マージするごとにVSCodeを終了する必要があります