【Windows】gitは正常に終了しませんでした (終了コード 128)【解決方法】
TortoiseGitを使用していて以下のエラーになる場合
gitは正常に終了しませんでした (終了コード 128)
ネットを漁ると、SSHをGitのものにしろとか出ます
フォルダに作成されるエラーログ(sh.exe.stackdump)
を見てみると、こんな感じのエラーが出ていました
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
11974 [main] sh 23816 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
13284 [main] sh 23816 handle_exceptions: Error while dumping state (probably corrupted stack)
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
Process Monitor で見てみると、sh.exe が起動する時に %TEMP% に対して QueryDirectory を実行して、ファイルの一覧を拾った直後で落ちている様子。
どうもこのフォルダに日本語を含むファイルが存在しているとエラーになるようです
%TEMP%は環境変数です
こんな感じのフォルダパスが格納されています
- C:\Users\XXXXX\AppData\Local\Temp
フォルダに直接 %TEMP% とすればアクセスできますので、それでアクセスしてみます
このフォルダ内にある日本語のファイル名のファイルを削除します
ファイル名で並び替えすると簡単に見つけられます
するとさくっと動作しました
この問題はGit以外でも度々起こるようです