私が使用しようとしていた今日git mergetool
のWindowsには、コマンドプロンプトとそれが使用するデフォルト設定されたことに気づいVimの涼しいです、が、私は好むVSコードを。
Gitのマージ競合を処理するためのGUIとして(または差分ツールとしても)Visual Studio Code関数を使用するにはどうすればよいですか?
私が使用しようとしていた今日git mergetool
のWindowsには、コマンドプロンプトとそれが使用するデフォルト設定されたことに気づいVimの涼しいです、が、私は好むVSコードを。
Gitのマージ競合を処理するためのGUIとして(または差分ツールとしても)Visual Studio Code関数を使用するにはどうすればよいですか?
回答:
のとしてVisual Studioのコード1.13 より良いマージ Visual Studioのコードのコアに統合されました。
それらを一緒に配線する方法は、を変更する.gitconfig
ことであり、2つのオプションがあります。
コマンドラインエントリでこれを行うには、これらのそれぞれを入力します(注:置き換える"
と'
WindowsのGitのバッシュ、MacOSのLinuxでIztokデルフィンとe4racheによって明らかなように)
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
、Visual Studioコードでにいくつかの行を貼り付けます。
git config --global core.editor "code --wait"
コマンドラインから実行します。ここからコマンドを入力できますgit config --global -e
。以下の「追加ブロック」のコードに貼り付けます。
[user]
name = EricDJohnson
email = cool-email@neat.org
[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 Visual Studio Code 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
、マージの競合を処理するのに役立つVisual Studio Codeが手に入りました。(Visual Studio Codeを閉じる前に、必ずファイルを保存してください。)
code
コマンドラインからの起動に関する詳細については、このドキュメントをご覧ください。
より詳しい情報についてはgit mergetool
チェックアウトのこのドキュメント。
unknown tool: vscode
、私はあなたが使用する必要があり、コマンドラインからVsCodeを呼び出すためにかなり確信している... code
の代わりにvscode
git difftool -d
て、ディレクトリの相違点を見つけました。それが明日どのように機能するかを確認します。
二重引用符を単純な引用符に置き換える必要がありました。
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'
それが正しく機能するため(二重引用符を使用すると、$ LOCALと$ REMOTEはそれらの値で置き換えられます)。
これは、WindowsコマンドプロンプトではなくGit Bash for Windows を使用している場合に必要です。
:^)
'
)を使用することを忘れないように、macOSとLinuxの上部にある説明を更新しました。
誰かがVisual Studioでそれを解決したい場合、別のオプションはVisual Studioを介してそれを行うことです:チームエクスプローラー->ホームアイコンをクリック=>設定ボタン=> Gitセクションを展開=>グローバル設定をクリック
マニュアルを使用すると、興味深い議論を見つけることができます:
git difftool --help
-x <command>, --extcmd=<command>
Specify a custom command for viewing diffs. git-difftool ignores the configured defaults and runs $command $LOCAL $REMOTE when this option is specified.
Additionally, $BASE is set in the environment.
この情報を使用すると、gitの設定を変更せずに次のコマンドを簡単に使用できます。
git difftool -x "code --wait --diff"
ここで同様の質問