Gitの履歴が消えた
VSCodeで開発中、突然Gitの操作ができなくなった。
僕は普段GUIでコミットなりプッシュなりをしてますが、VSCodeのソース管理タブの下にあるソース管理グラフがまっさらになっており、"選択したソース管理プロバイダーには、ソース管理履歴項目が存在していませ..."のような表示がされていました。
VSCodeのソース管理タブ(これは解決後の画像)
そこでターミナルでもプッシュやプルを試してみたが、どれもエラーになってしまいました。
どうやらGit reflogがクラッシュしたらしい。
$ git push
error: pack-objects died of signal 10
error: pack-objects died of signal 10
fatal: the remote end hung up unexpectedly
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
error: failed to push some refs to 'https://github.com/
原因 : "Macストレージを最適化"のせい
Finderで作業ディレクトリを確認したところ、.git
ファイルにiCloudのマークが付いていました。
これはMacのローカルストレージの空き容量が足りない時に、ローカルから削除してiCloud上にのみ保存する"Macストレージを最適化"機能によるものです。
256GBのMacBook Airを使っているので、容量が足りない判定でローカルから削除されてしまったようです。
.git
ファイルを右クリック→今すぐダウンロードでローカルストレージ上に復元した結果、ソース管理履歴がすぐに戻りました。
"Macストレージを最適化"をオフにする方法
→システム設定→自分のApple IDタブ→iCloud→"Macストレージを最適化"をオフにする
おわりに
おそらく、Macストレージの最適化でローカルにない状態だった開発中のファイルは他にもたくさんあるので、通常なら問題にならないと思います。
もしファイルが見つからないと言われた場合に試してみてください。
(あとそもそもストレージ256GBは少ないね)