34

誤って削除.git/indexしてしまったのですが、復元する方法はありますか? 完全に削除されています。私はまだ何もコミットしていません。

4

3 に答える 3

54

インデックス ファイルを再構築するには、次の 2 つのコマンドを試すことができます。

git reset         # re-scan the working directory
git add -u        # update the index
于 2016-07-09T01:48:50.107 に答える
5

を使用して、最後のチェックアウトの時点でインデックスを復元できますgit reset。それ以降に追加したコンテンツは引き続き追加され、リポジトリ内にありますが、パスとコンテンツの関連付けを記録した唯一の場所はインデックスでした。git fsck で到達不能なオブジェクトを lost'n'found ディレクトリにドロップすることができます。その docsを参照してください。次に、使い慣れた領域での最も簡単な方法は、コンテンツをワークツリーにドロップして再度追加することです。git はコンテンツを複製しませんが、インデックス エントリを回復します。

于 2016-07-09T01:44:17.547 に答える
4

とにかく、それは不可能だと思いgitます(ゴミ箱ディレクトリの中を調べるか、ファイルシステムが提供する回復手段を試してみてください)。git addただし、インデックスを必要とする何かを行うか、何かを行うとすぐに、新しいインデックスを取得します。

編集したファイルのいずれかを失った場合は、git add./git/objects ( find .git/objects/ -type f |sed 's:\.git/objects/::; s:/::' ) を調べて、それぞれの内容を で検査しgit cat-file -p $the_hash、失われたファイルを見つけたら、出力をファイルにリダイレクトします。 .

( の場合git add、ファイル名のエントリが に移動.git/indexし、ファイルの内容が に保存され.git/objects/ます。Git インデックスは、 の場合に作成されるツリー オブジェクトと思われるファイル名のエントリで構成されますcommit。インデックスの人間が判読できる表現を表示できます。とgit ls-files --stage)。

于 2016-07-08T20:39:36.520 に答える