インデックスファイルが予想よりも小さい


81

今朝、私はgitからこのエラーを受け取り始めました:

致命的:インデックスファイルが予想よりも小さい

致命的:git status--porcelainfailed

何が起こっているのか、そしてそれをどのように解決するのかについてのアイデアはありますか?



はい、投稿する前に試しました。問題は、インデックスファイルを破壊し続けるサブモジュールにありました(理由はわかりません)。
karellm 2012

@karellmなぜこれが起こったのか分かりましたか?
crmpicco 2015

正直なところ、私はそれを引き起こした原因を調査しなかったし、それも起こらなくなった。
karellm 2015

ヒント:私の経験では、これはNFSフォルダーが更新されていないことが原因である可能性があります。リポジトリがNFS上にある場合は、問題の修正を試みる前に数分待ってください。これは、あるマシンからプルし、別のマシンでステータスを確認した後、両方のマシンが同じNFSをマウントした後に発生しました。
ggll 2018年

回答:


107

インデックスファイルは破損していますが、簡単に再作成できます。削除するだけです...

rm .git/index

次に、ステージングしようとしているファイルを再度追加できます。


上で述べたように、インデックスを何度も破損させていたサブモジュールとの競合のために機能していませんでした...サブモジュールを削除し、インデックスを削除して、すべてを追加しました。それはついに機能しました。ありがとう!
karellm 2012

3
なぜこれが起こるのですか?過去2週間に2回これが発生しましたが、その理由がわかりません。
crmpicco 2015

7
これは私にはうまくいきませんでした。このエラーが発生する前は、ほとんどクリーンな作業コピーがありました。インデックスファイルを削除して実行git add .すると、すべてのファイルが新しく、コミットが必要であるかのように動作しました。
マーク

1
サブモジュールがある場合も機能しません。リセットするだけです(回答の下)。
TimZaman 2017年

これを実行した後、私はaを実行するgit restore --staged必要があり、すべてを再
コミット

90

ローカルの変更を保持する場合は、以下を使用します。

$ rm .git/index
$ git reset HEAD .

> Unstaged changes after reset:
  modified foo.txt
  modified bar.txt

1
なぜこれが起こるのか考えはありますか?それは過去2週間で約4-5回私に起こりました。
crmpicco 2015

1
この答えはここで最高のものです。さらに、gitサブモジュールを使用する場合は注意が必要です。これらのインデックスファイルも削除してください(これらはにあります.git/modules/src)。これは、(メイン)インデックスファイルを削除した後もエラーが発生する理由を疑問に思いました。
Graftak 2017

これは標準的な理由で発生する可能性があると思います。プロセスが途中で停止した、ディスク領域が不足しているなどです。私の場合は、gitフォルダーへのシンボリックリンクを使用して、svnexternalsの代わりにビルドに使用するディレクトリを作成している可能性があります。 、ただし、これらのリポジトリに対する唯一の操作は、ビルドフォルダーをハードリセットするために読み取り専用であるため、奇妙です。
jgmjgm

2

インデックスを削除しても問題があり、リセットできない方へ。変更を保持したい場合は、次のようにします(解決策ではなく、醜い回避策です!)。

  1. ファイルのバックアップを作成します。これから説明することは機能するはずですが、念のために行ってください
  2. .gitフォルダーを削除します
  3. リポジトリのクローンを作成します(場所は関係ありません)現在のディレクトリで作成しました
  4. 作成したものをclone.gitディレクトリから現在のディレクトリにコピーします
  5. 複製されたディレクトリを削除します。6 。ブランチチェックアウトを再度使用した場合は、オプションです。
  6. Gitステータスは、想定どおりに変更を追跡する必要があり、すべてのgitコマンドが機能するはずです。

私の場合は上記のとおりで、gitはその参照を台無しにしました... Git log「あなたのブランチは壊れているようです」とgit fsck表示され、悪い参照についての警告を私に与えていました。おそらく修正できるかどうかを考えましたが、それを行うのに多くの時間を費やすので、醜い回避策に行きました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.