私にとってうまくいった唯一のことは、別のフォルダーでリポジトリをチェックアウトすることでした。現在のリポジトリが存在すると仮定します/home/me/current
ます。
私はしました
git clone /home/me/current /home/me/temp
これにより、リポジトリの別のクローンが作成されます /home/me/temp
これで/home/me/temp
、好きなことを何でもできるようになりました。例えば
git reset --hard commit-hash-before-delete
今、私は削除されたファイルフォルダをコピーして戻すことができます
cp -r /home/me/temp/some/deleted/folder /home/me/current/some/deleted/folder
そして一時フォルダを削除します
rm -rf /home/me/temp
の例
git checkout -- some/deleted/folder
git checkout -- some/deleted/folder/*
動作しない
$ git checkout -- some/deleted/folder/*
zsh: no matches found: some/deleted/folder/*
$ git checkout -- some/deleted/folder
error: pathspec 'some/deleted/folder' did not match any file(s) known to git.
のような他の例
git reset --hard HEAD
削除されたファイルだけでなく破壊的です。その他の変更もすべて失われます。
同様に
git reset --hard some-commit
後にコミットを失う some-commit
git status
実行するコマンドに関するヒントを提供します