たぶん当たり前のことだと思いますが、備忘として書きます
TL;TD
- 今までGit Bash はbash.exeを実行してつかっていた
- VscodeやWindows Terminal で Git Bash を使うときは
C:\\Program Files\\Git\\bin\\bash.exe
を呼び出すようにする - けど、そうするとディレクトリに色がつかないなど、なんか表示違う
- bash.exeは
C:\\Program Files\\Git\\bin\\bash.exe --login -i
を実行して起動しているようので、同じようにすればOK
どう違うの
-
C:\\Program Files\\Git\\bin\\bash.exe
の場合 -
C:\\Program Files\\Git\\bin\\bash.exe --login -i
の場合
Windowns Terminalの場合
- Git Bash を使えるようにする、基本的な設定はこちらを参考にしました。(分かりやすい。。感謝ですm(__)m)
- configで設定するcommandlineに引数追加
-
"commandline" : "C:\\Program Files\\Git\\bin\\bash.exe"
を -
"commandline" : "C:\\Program Files\\Git\\bin\\bash.exe --login -i"
にすれば良し
-
VScodeの場合
-
terminal.integrated.shellArgs.windows
でwindows OSでのtemrinal実行時引数が設定できる - 設定ファイルのJSONにterminal.integrated.shellArgs.windowsを追加。valueを↓みたいにする
"terminal.integrated.shellArgs.windows": ["--login", "-i"]
- windows OSでのtemrinal実行をWSLにしていると無効な引数に扱われて実行失敗するので、使い分ける人とかは注意
なぜなのか
- ログインシェルとインタラクティブシェルの違いに原因がある様子。
- bash.exeはログインシェルで起動している
- ログインシェルじゃないと、~/.bash_profileなどが読みこまれない。