私は新しいプロジェクトに取り組みました。すべてのファイルをローカルのgitリポジトリに追加しましたgitからファイルを復元
git add .
私はコミットしませんでした。私は間違いなくgitをリセットします。
git reset --hard
どのようにファイルを復元することができますか?私は、その原子がファイルを保持していただけでなく、そこにファイルを保存していないことを望みました。気にしないでください、その原子は私のすべてのファイルを閉じます。
私は新しいプロジェクトに取り組みました。すべてのファイルをローカルのgitリポジトリに追加しましたgitからファイルを復元
git add .
私はコミットしませんでした。私は間違いなくgitをリセットします。
git reset --hard
どのようにファイルを復元することができますか?私は、その原子がファイルを保持していただけでなく、そこにファイルを保存していないことを望みました。気にしないでください、その原子は私のすべてのファイルを閉じます。
ファイルgit add
ファイルの場合、git
は、ファイルをリポジトリ(.git
ディレクトリ)にオブジェクトとして保存します。あなたのファイルはおそらくまだぶら下がっています。一方、git reset --hard
コマンドを実行すると、という名前の情報が失われています。です。
あなたが実行することにより、オブジェクト自体を見ることができます:
のようなものを生成しますfind .git/objects -type f
:
:あなたはのように、git cat-file
コマンドを使用して、それらのオブジェクトの内容を見ることができます
.git/objects/67/6e8ff99e42b61f96bb0107fa1dff59594eba07
.git/objects/7c/45d8f7d987c584a8d61a8d75431ddd4f1ba52f
を
git cat-file -p 7c45d8f7d987c584a8d61a8d75431ddd4f1ba52f
オブジェクトIDは、オブジェクトの最初のレベルのディレクトリの2文字とそれに続くファイル名のすべての文字。
の内容をすべてのファイルのに復元するスクリプトを書くのはかなり簡単ですが、事実の後に手動で名前を変更する必要があります。
次は短いデモです:https://asciinema.org/a/2jj40llsgjjrkvp8nfxqqt5s1 – larsks
'私は誤ってgitをリセットしました。' ... 'git reset -hard'と入力するのは少しうまくいかないようです。いずれにしても、作業ディレクトリとインデックスの両方から変更がなくなったため、IDEにバックアップがない場合は不運になる可能性があります。 –