は私がやった:背面に移動するには何のHEADがないどうやらので 最初のコミットなしでgit rm -rf dirnameを元に戻す方法は?
git init
git add .
git rm -rf dirname
は、
git reset --hard HEAD
、
git checkout -f
と
git reflog
は動作しませんでした、他のanswsersを見ると、また戻ってからファイルを取得することを約束します。
ファイルを戻す方法はありますか?
は私がやった:背面に移動するには何のHEADがないどうやらので 最初のコミットなしでgit rm -rf dirnameを元に戻す方法は?
git init
git add .
git rm -rf dirname
は、
git reset --hard HEAD
、
git checkout -f
と
git reflog
は動作しませんでした、他のanswsersを見ると、また戻ってからファイルを取得することを約束します。
ファイルを戻す方法はありますか?
ありません。
通常、git rm
は、ファイルを削除する前に既にコミットされているかどうかをチェックするので、作業を失うことはありません。ただし、-f
を使用すると、このチェックが無効になります。要するに
:
-f
を使用しないでください。いいえ、私が知る限り。私はgitがファイルをリンク解除すると信じます。ちょうどrm -rf
のようにします。それがファイルについて知っているかどうかに関わらず、それは問題ではありません、それは喜んでディレクトリを核にします。本当に、唯一の手段は、ファイル復旧ツールをと同じように使用することです。rm -rf
Gitがdirname
ディレクトリを追跡していない場合は、それはそれについて知っていないとあなたがgit rm -rf
とディレクトリを削除することはできません。あなたは(だろう)あなたはgit init
後git add .
またはgit add dirname
行っていた場合にのみ、方法削除した可能性がある
fatal: pathspec 'dirname' did not match any files
のようなエラーが発生します。そうであれば、ファイルは消えてしまい、決してコミットされなかったり、gitがそれを追跡しなかったりするので、それらを取り戻すことはできません。これは、通常のフォルダにrm -rf
をしていると同様に良好である(そして、あなたがバックアップを持っていない限り、回復することはできません)
git reset --hard
は削除がまだコミットされなかった助けたと、一般的に言えば、削除はCtrl+Z
によって中断されました警告:-n
オプション(1)を使用しないでgit prune
を実行すると、到達不能データが消去されます。
git prune
とgit cat-file
を使用する方法があります。オブジェクトgit prune -n
意志のリストを実行
は剪定によって除去される。
$ git prune -n
9cc84ea9b4d95453215d0c26489d6a78694e0bc6 blob
c315143703752ef4d11ca7d93f2c324872b2ebff blob
各行が削除されたファイルに対応しています。
NAME:
git prune
ドキュメントからgit cat-file -p 9cc84ea9b4d95453215d0c26489d6a78694e0bc6 > restored-filename.whatever
(1):
は今、
git cat-file
を使用して、我々は新しいファイルに削除されたファイルの内容を復元することができます
git-prune - 到達不能オブジェクトをオブジェクトデータベースから削除する
オプション
-n
--dry-run
何も削除しないでください。それが削除するものだけを報告してください。
unixのように - '-f'はあなたがしていることをよりよく理解することを意味します。 –