をめぐる対立を解決する"エラー:悪指数–死亡:インデックスファイルの腐敗をお使いの場合はGit
-
12-09-2019 - |
質問
後 git init
, しているものであり、発表というとする取組方針当社グループ数のファイル、変更、追加、為です。のgitデーモン(動でCygwinにWinXP)クローニングのリポジトリです。現在、このエラーをクローニングのリポジトリ:
$ git status
error: bad index file sha1 signature
fatal: index file corrupt
がこの問題を修正するには以降の新しいコピーのリポジトリとは?
解決
.git/index
)として指数である場合は、、あなたは単純に(あなたがしたい場合、バックアップコピーを作成する)インデックスを削除し、その後のバージョンにインデックスを復元することができます最後にコミットします:
OSX / Linuxの場合:
rm -f .git/index
git reset
Windowsの場合:
del .git\index
git reset
(上記reset
コマンドはgit reset --mixed HEAD
と同じである)
あなたは、代わりの代わりにgit read-tree
のgit reset
低いレベルの配管を使用することができます。
問題はパックファイルの<ためのインデックスである場合/ strong>を、あなたはgit index-pack
を使用して、それを回復することができます。
他のヒント
あなたは誤って、プロジェクトのルート上のsed(?おそらく、リファクタリング)のようなものを持つ.git /インデックスファイルが破損した可能性があります:
sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr "$SEARCHPATERN" "$PROJECTROOT")
ちょうどあなたのgrep / sedのでバイナリファイルを無視し、将来的にこの問題を回避するには
sed -ri -e "s/$SEACHPATTERN/$REPLACEMENTTEXT/g" $(grep -Elr --binary-files=without-match "$SEARCHPATERN" "$PROJECTROOT")
これは悪いクローンのように聞こえます。あなたが取得するために以下のことを試みることができるより多くの情報を(おそらく?):
git fsck --full
私はこの問題のようにしていtiで固定します:
rm -f .git/index
git reset
されていたものではなかった。 の溶液?何らかの理由かったです。gitのフォルダにサブディレクトリが入っています。を削除します。gitのフォルダは、元本) git reset
ます。一度削除されたった。
これは私のために働きました。私はその理由の好奇心が強いが、私は最初の場所でエラーが発生して開始しました。私は昨日ログアウトした場合、それは大丈夫でした。今朝にログインし、そうではありませんでした。
rm .git/index
git reset
以降、解っていたのが引き続き問題は、この退屈解
- クローンの新しいコピーのレポ他
- コピーします。gitディレクトリへの飛レポ-レートが含まれている変化したかったコミット
かったですよね。ちなみに、思い切って sed
プロジェクトのルートとして@推測の空港を表示一部の空港を表.たレッスンです。
gitのサブモジュールのユーザーへの注意 - - であるとして、ここでの解決策は、あなたのために動作しません。
。あなたは、たとえば、dev
と呼ばれる親リポジトリがあるとしましょう、と自分のサブモジュールのリポジトリがapi
呼ばれます。
あなたはapi
の内部にあり、あなたはこの質問に記載されたエラーを取得する場合:
error: bad index file sha1 signature
fatal: index file corrupt
index
ファイルが.git
フォルダの中にされることはありません。実際には、.git
でもフォルダではありません - それは、このリポジトリのための本当の.gitデータの場所にテキストドキュメントになります。このような可能性が何かます:
~/dev/api $ cat .git
gitdir: ../.git/modules/api
だから、代わりにrm -f .git/index
の、あなたがこれを行う必要があります:
rm -f ../.git/modules/api/index
git reset
または、より一般的には、
rm -f ../.git/modules/INSERT_YOUR_REPO_NAME_HERE/index
git reset
.git
ディレクトリがある場合には、この問題が発生する可能性があります。他の.gitディレクトリがあるかどうかを確認し、それらを削除し、もう一度試して、それを修正するには。
私は.git /インデックス、その後、私のためにGitのリセット作業中にインデックスファイルの名前を変更し、同じ問題に直面していた。
rm -f .git/index
git reset
HTTPSではより多くの情報:// WWW。 chris-shaw.com/blog/quick-fix-for-git-corrupt-indexする
これはばかげているが、私はちょうど私のマシン(MAC)を再起動していると、それは決して起こらなかったような問題は消えていました。私はサポートの男のような音に嫌い...
また、
ファイルの以前のバージョンに復元するために試すことができます