TortoiseGitでプッシュしようとしたら、こんなエラーが出た場合の対処法。
エラー内容
gitは正常に終了しませんでした(終了コード 1)
さらに、下記のようなメッセージが出ている場合。
error: object directory /192.168.1.XXX/YYYY/ZZZZ/objects does not exist; check .git/objects/info/alternates.
このような場合は、原因はGitのバグ。
エラーメッセージ見たときに「ん?」と思ったけど、ネットワークフォルダのパスの先頭が「//」ではなく「/」になってる。
どうやらGit for Windows 2.11.0では既知のバグだそうで、Stack Overflowにも挙がってた。
git bash fail to push branch with error message: “object directory does not exist” – Stack Overflow
http://stackoverflow.com/questions/41115613/git-bash-fail-to-push-branch-with-error-message-object-directory-does-not-exis
解決方法
以下の方法で解決できる。
- Git for Windows のバージョンを上げる(→ 2.12.0)
- リポジトリのパスをネットワークドライブに指定する
Git for Windows のバージョンを上げる(→ 2.12.0)
Stack Overflowでも書かれていたけど、最新バージョン(2.12.0)では修正されているそう。
試しに最新版にアップデートしてみると、問題なくプッシュできた。
最新版のダウンロードは以下のリンクからできる。
Git for Windows
https://git-for-windows.github.io/
リポジトリのパスをネットワークドライブに指定する
パスの先頭が「//」で始まるのが問題なので、ネットワークドライブを設定して「Z:\」などから始まるようにすればOK。
なんらかの制約で、Git for Windowsのバージョンを上げれない場合は、こちらで対応。