531

コマンド ラインで git を使用する場合、Visual Studio Code をデフォルトのエディターとして使用できるかどうか疑問に思っています。つまり、コマンド ラインからコミット コメントを作成し、ファイルの差分を見る場合です。

マージに使用できないことは理解していますが(少なくとも現時点では)、差分を確認するために使用できるかどうかを知っている人はいますか?これを実現するための.gitconfigファイル?

更新 1:

過去にNotepad ++で行ったのと同様のアプローチを試みました。

#!/bin/sh

"c:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

そして使用:

#!/bin/sh

"C:\Users\gep13\AppData\Local\Code\app-0.1.0\Code.exe" "$*"

しかし、これはエラーメッセージになります:

C:\temp\testrepo [master +1 ~0 -0]> git commit
[8660:0504/084217:ERROR:crash_reporter_win.cc(70)] Cannot initialize out-of-process crash handler
Aborting commit due to empty commit message.
C:\temp\testrepo [master +1 ~0 -0]>

コードは期待どおりの内容で正しく開きますが、応答を待機していません。つまり、[保存] をクリックしてウィンドウを閉じてプロンプトに戻ります。

更新 2:

VSCode に取り組んでいる開発者の 1 人から返事がありました。この機能は現在サポートされていないようです:-(

https://twitter.com/IsidorN/status/595501573880553472

この機能が追加されることに興味がある場合は、ここに投票を追加することを検討してください。

http://visualstudio.uservoice.com/forums/293070-visual-studio-code/suggestions/7756482-support-git-configure-diff-and-merge-tools

更新 3:

この機能が VSCode チームによって採用されたことを確実に知らされたので、それを含む将来のリリースを楽しみにしています

更新 4:

以下の @f-boucheros コメントのおかげで、VS Code をコミット コメント、リベースなどのデフォルト エディターとして機能させることができました。それを diff ツールとしても使用できるかどうかを確認したいと思います。

更新 5:

質問に対する受け入れられた回答によると、これはコードの V1.0 リリースを使用して可能になりました。

4

16 に答える 16

930

最新のリリース (v1.0、2016 年3 月にリリース) では、 VS Code をデフォルトの git commit/diff ツールとして使用できるようになりました。ドキュメントから引用:

  1. code --helpコマンドラインから実行できることを確認してください。ヘルプが表示されます。

    • ヘルプが表示されない場合は、次の手順に従ってください。

      • Mac:コマンド パレットから[シェル コマンド: パスに「コード」コマンドをインストール] を選択します。

        • shiftコマンド パレットは、 +を押すとポップアップするものです。⌘</kbd> + P while inside VS Code. (shift + ctrl + P in Windows)
      • Windows: インストール中に [ Add to PATH ] を選択したことを確認してください。
      • Linux: 新しい .deb または .rpm パッケージを介してコードをインストールしたことを確認してください。
  2. コマンドラインから、実行しますgit config --global core.editor "code --wait"

git config --global -eこれで、Git を構成するためのエディターとして VS Code を 実行して使用できるようになりました。ここに画像の説明を入力 以下を追加して、VS Code を差分ツールとして使用するためのサポートを有効にします。

[diff]
    tool = default-difftool
[difftool "default-difftool"]
    cmd = code --wait --diff $LOCAL $REMOTE

これは、VS Code に渡すことができる新しい--diffオプションを利用して、2 つのファイルを並べて比較します。

要約すると、VS Code で Git を使用できる場所の例をいくつか示します。

  • git rebase HEAD~3 -iVS Code を使用したインタラクティブなリベースが可能
  • git commitコミット メッセージに VS Code を使用できるようにします
  • git add -p続いeてインタラクティブな追加
  • git difftool <commit>^ <commit>VS Code を変更の差分エディターとして使用できます
于 2016-04-15T10:23:41.857 に答える
51

私が理解していることでは、VSCode はもう AppData にありません。

そのため、コマンド プロンプト ウィンドウでそのコマンドを実行して、デフォルトの git エディターを設定します。

git config --global core.editor "'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"

パラメータは-w--wait戻る前にウィンドウが閉じられるのを待つことです。Visual Studio Code は Atom Editor に基づいています。atom もインストールされている場合は、コマンドを実行しatom --helpます。ヘルプの最後の引数は wait です。

次回実行するgit rebase -i HEAD~3と、Visual Studio Code がポップアップ表示されます。VSCode が近づくと、Git がリードを取り戻します。

注: VSCode の現在のバージョンは 0.9.2 です。

お役に立てば幸いです。

于 2015-10-27T14:55:13.667 に答える
3

朗報です!執筆時点では、この機能は0.10.12-insidersリリースで既に実装されており、 0.10.14-insiders を通じて実行されてます。したがって、VS Code の今後のバージョン1.0 リリースで使用する予定です。

実装の参照: -w/--wait コマンド ライン引数の実装

于 2016-04-11T01:56:22.697 に答える
1

GitPadは、現在のテキスト エディターを Git の既定のエディターとして設定します。

Windows 10のファイルの既定のエディター.txtは Visual Studio Code で、GitPad を実行すると、Git の既定のエディターになりました。質問に記載されている問題は経験していません (私の場合、Git は VS Code ウィンドウが閉じられるまで待機します)。

(ファイルへのリンク.exeはうまくいきませんでした。ソースを自分でコンパイルする必要があるかもしれません。)

于 2015-08-06T10:18:22.157 に答える
1

これを実現するには、.gitconfig ファイルでどのコマンド ライン オプションが必要ですか?

git-lense を機能させるには、これを .gitconfig ファイルに追加する必要がありました。


[core]
    # Make sure that interactive rebases open correctly with vs code
    editor = code -w -n

-nオプションです – アレックスが以下で述べたように、これは略語で--new-windowあり、私はそれが役立つと思います:)

于 2021-10-05T17:28:52.850 に答える
0

これができるかどうかはわかりませんが、gitconfig ファイルでこれらの追加を試すことができます。

これらの値から kdiff3 を置き換えて、Visual Studio コードの実行可能ファイルを指すようにしてください。

[merge] tool = kdiff3 [mergetool "kdiff3"] path = C:/Program Files/KDiff3/kdiff3.exe keepBackup = false trustExitCode = false

于 2015-05-04T07:12:33.523 に答える
0

.txt ファイルを開くデフォルトとして Visual Studio Code をセットアップしました。次に、単純なコマンドを使用しました: git config --global core.editor "'C:\Users\UserName\AppData\Local\Code\app-0.7.10\Code.exe\'". そして、すべてがうまく機能します。

于 2015-08-23T20:53:57.850 に答える