LoginSignup
0
0

Visual Studioでもターミナルからgitを使いたい

Posted at

TL;DR

以下のコマンドを管理者権限のPowershellで順に実行します。

New-Item -ItemType File -Path $PROFILE -ErrorAction SilentlyContinue
Add-Content -Path $PROFILE -Value 'Set-Alias -Name git -Value "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe"'
Set-ExecutionPolicy RemoteSigned

下記で解説していきます。

背景

  • Visual Studioに搭載されているGitの使い勝手が(個人的に)悪い
  • Visual Studioにgitが入っているのに、別でGit Bashを入れたくない

→ Visual Studioにあるgitをコマンドラインで使いたい!

Git本体の場所

Windows11に入れたVisual Studio 2022では以下のパスにありました。

C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe

これをエイリアス登録すれば良さそうです。

エイリアス登録

これで今のセッションでgitコマンドが使えるようになります。

Set-Alias -Name git -Value "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe"

毎回これを実行するのは面倒なのでプロファイル(.bash_aliasesのようなもの)に登録します。


  • プロファイルを新たに作ります
  • すでに作っていた場合エラーになりますが、-ErrorAction SilentlyContinue をつけることでエラーを無視できます
New-Item -ItemType File -Path $PROFILE -ErrorAction SilentlyContinue
  • プロファイルにSet-Aliasコマンドを追加します
Add-Content -Path $PROFILE -Value 'Set-Alias -Name git -Value "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe"'

実際に書き込まれているか確認しましょう

cat $PROFILE

以下のように表示されてばOKです

Set-Alias -Name git -Value "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe"
  • 毎回プロファイルを読まれるように実行ポリシーを変更します
Set-ExecutionPolicy RemoteSigned

Visual Studioでgitを使ってみる

  • View -> Terminal または Ctrl + `でターミナルを開きます
  • このターミナルはPowershellなので、先ほど登録したエイリアスが使えるはずです

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0