Spring Boot で書籍の貸出状況確認・貸出申請する Web アプリケーションを作る ( 番外編 )( Git for Windows を 2.5.1 → 2.5.3 へ その2 )
Git for Windows 2.5.3 をインストール先を変更せずに C:\Git\2.5.1 にインストールすると C:\Git\2.5.1\git-bash.exe は問題なく起動しますが、1度アンインストールして C:\Git にインストールし直すと C:\Git\git-bash.exe が起動しない件について、C:\Git にインストールし直したかったのでもう少し調査してみました。
調査内容
アンインストールしてから C:\Git にインストールし直した後、C:\Git の下に 2.5.1 ディレクトリを作成して C:\Git の下のディレクトリ・ファイル ( 2.5.1 ディレクトリを除く ) を全て C:\Git\2.5.1 の下にコピーしてから C:\Git\git-bash.exe を起動すると、これは起動しませんでした。ただし、この状態から C:\Git\2.5.1\git-bash.exe を起動すると、これは起動しました。同じ git-bash.exe を起動しているのに、起動する git-bash.exe のパスが異なるだけで起動する/しないが変わりました。
この時のディレクトリ構成は以下のようになっています。
C:\Git ├ git-bash.exe ← これを実行しても起動せずに終了する ├ usr │ └ bin │ └ bash.exe └ 2.5.1 ← C:\Git の下のディレクトリ・ファイルを丸ごとこの下にコピーする ├ git-bash.exe ← これを実行すると起動する └ usr └ bin └ bash.exe
ConEmu の GitHub で以下の Issue を見つけました。
can't attach new Git For Windows 2.0 #176
https://github.com/Maximus5/ConEmu/issues/176これによると git-bash.exe ではなく git-cmd.exe で
c:\git\git-cmd.exe --command=usr/bin/bash.exe -l -i
と指定すれば起動できるようです。実際に
c:\git\git-cmd.exe --command=usr/bin/bash.exe -l -i
で起動してみましたが、問題なく起動し rebase 時にも日本語が表示されました。git-bash.exe が起動している時のプロセスの状況を確認したいと思い、Process Explorer というソフトをインストールして確認してみました。
Process Explorer
https://technet.microsoft.com/ja-jp/sysinternals/bb896653.aspxC:\Git\2.5.1\git-bash.exe で起動したプロセスは以下のようになっていました。
c:\git\git-cmd.exe --command=usr/bin/bash.exe -l -i
で起動したプロセスは以下のようになっていました。確認した結果をまとめると、
git-cmd.exe を単に実行するとコマンドプロンプトが起動しただけでした。bash.exe が実行されないため rebase 時に日本語が文字化けします。
結論
- 結局 git-bash.exe を単に実行する方法は見つけられず。
- ただし
c:\git\git-cmd.exe --command=usr/bin/bash.exe -l -i
で実行すればよいことが分かりましたので、今後は ConEmu からこのコマンド文字列で起動することとし、C:\Git にインストールし直したままにします。 ConEmu は1度ダイアログからコマンドを実行すれば次回からは history メニューから選択するだけで起動できるようになりますので、オプションの指定が必要になったとしても手間はかかりません。
コピーした C:\Git\2.5.1 ディレクトリは削除します。
- IntelliJ IDEA の git.exe のパスは
C:\Git\cmd\git.exe
に変更します。
アンインストールした時に削除されていないデータがあると思うのですが、それが何なのか全く分からないんですよね。。。