エラーの概要
Gitを使っていると、以下のようなエラーメッセージが出ることがあります。
error: index uses ��? extension, which we do not understand
fatal: index file corrupt
これはGitの「インデックスファイル(.git/index
)」が破損してしまった場合に表示されるエラーです。
原因
Gitのインデックスファイルは、作業ツリーとリポジトリの状態を管理する重要なファイルです。このファイルが以下の理由で壊れることがあります:
- 不正な終了(電源断、強制終了など)
- 外部ツールによるファイル操作
- ネットワークドライブ(Google Drive, Dropboxなど)上での同期競合
- エンコーディングや文字コードの不一致
特に、Google DriveやOneDriveといった同期系クラウドドライブ上でGitリポジトリを管理していると、ファイルの同時書き込みなどが原因で壊れやすくなります。
対処法(修復方法)
以下のコマンドで破損したインデックスファイルを削除し、状態をリセットすることで修復可能です。
rm .git/index # インデックスファイルを削除
git reset # HEADの状態からインデックスを再構築
PowerShellやWindows環境では以下のように実行します:
PS G:\YourProjectPath> rm .git/index
PS G:\YourProjectPath> git reset
解説
rm .git/index
: 壊れているインデックスファイルを削除します。git reset
: HEADの状態に基づいてインデックスを再構築します。ファイルの変更はそのまま残るので、作業内容が消えることはありません。
注意点
この方法はあくまで「インデックスの修復」にとどまります。ローカル変更やコミット履歴には影響しませんが、心配な場合は以下のようにして事前バックアップをとるのが安心です:
cp .git/index .git/index.bak
まとめ
| エラー内容 | 対処コマンド |
|
| fatal: index file corrupt
| rm .git/index && git reset
|
クラウドドライブとGitの相性には注意し、可能であればローカルディスク上で作業することをおすすめします。