Git
Ubuntu
VSCode
WindowsSubsystemForLinux
WSL

Visual Studio CodeでWSLのgitを利用してソース管理を行う

More than 1 year has passed since last update.

tl; dr

せっかく WSL(旧Bash on Windows)が正式版になったので Git for Windows を使わず WSL の git を使ってソース管理しよう。

手順

環境

ソフトウェア バージョン
Windows 10 1709 (Fall Creators Update)
Visual Studio Code 1.18.1
wslgit 0.3.0

WSL 導入方法の注意事項

WSL は必ず Microsoft Store から導入すること1

Preview 版から触っていた人にはお馴染みの lxrun /install で導入してはいけない。既に Preview 版から導入している人は lxrun /uninstall してストアから導入すること。

ディストリビューションは色々選べるようだが、これ以降の作業は Ubuntu 16.04 LTS にて動作確認を行った。

wslgit.exe のダウンロード

Releases · andy-5/wslgit から最新のバイナリーをダウンロードする。これ以降、C:\wslgit.exe に置いてあるものとして話を進める。

WSL 実行パスの確認

これまた Preview 版ではお馴染みの C:\Windows\System32\bash.exe から変更になっており、ストア版では %LocalAppData\Microsoft\WindowsApps\ubuntu.exe になっている。

Ubuntu 以外のディストリビューションを使っている人は %LocalAppData\Microsoft\WindowsApps に行けばそれっぽい実行ファイルがあるのではないか。

WSL 初回実行

初回実行時になにかしらの初期化処理をしているようなので、一度起動しておく。

WSL 上で一度だけ sudo をしておく

WSL 上で一度も sudo を実行しない場合、

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

username@MACHINE-NAME:~$ 

…というように、sudo 由来の余計なメッセージが表示されてしまい、これが悪さをして Git ソース管理が上手く動作しない。

sudo ls

とでもしておくように。

Visual Studio Code の設定をする

こうする。

settings.json
{
    "terminal.integrated.shell.windows": "C:\\Users\\username\\AppData\\Local\\Microsoft\\WindowsApps\\ubuntu.exe",
    "git.path": "C:\\wslgit.exe"
}

"terminal.integrated.shell.windows" にフルパスを指定しないといけないのが情けない感じなのだが、どうも settings.json では環境変数は使えない2ようなので仕方がない。

Visual Studio Code を再起動して、動作を確認する

Ctrl-@ で WSL が起動するし、Git for Windows がなくても git によるソース管理が動作しているはず。

ソース管理の動作確認