誤って削除しました.git/index
、それを回復する方法はありますか?完全に削除されます。まだ何もコミットしていません。
インデックスファイルを再構築するには、次の2つのコマンドを試してください。
git reset # re-scan the working directory
git add -u # update the index
git reset
を使用すると、最後のチェックアウトの時点でインデックスを回復できます。それ以降に追加したコンテンツは引き続き追加され、リポジトリにありますが、パスとコンテンツの関連付けを記録した場所はインデックスのみでした。 git fsckで到達不能オブジェクトをlost'n'foundディレクトリにドロップすることができます (そのドキュメント を参照)。次に、おなじみの領域での最短ルートは、コンテンツをワークツリーに戻し、再度追加することです。 gitは内容を複製しませんが、インデックスエントリを復元します。
とにかく、それは不可能だと思います。git
を介してではありません(ごみ箱ディレクトリまたはファイルシステムが提供する回復手段を調べてみてください)。ただし、git add
を実行するか、インデックスを必要とする何かを実行するとすぐに、新しいインデックスが取得されます。
git add
edしたファイルを紛失した場合は、。/ git/objects(find .git/objects/ -type f |sed 's:\.git/objects/::; s:/::'
)を実行し、git cat-file -p $the_hash
を使用して各ファイルの内容を確認し、1回失われたものを見つけたら、出力をファイルにリダイレクトします。
(git add
の場合、ファイル名エントリは.git/index
に移動し、ファイルの内容は.git/objects/
に格納されます。Gitインデックスは、取得するツリーオブジェクトのファイル名エントリで構成されますcommit
を使用すると作成されます。git ls-files --stage
)を使用すると、インデックスを人間が読める形式で表示できます。