Satu-satunya hal yang berhasil bagi saya adalah melakukan checkout repo di folder lain. Asumsikan repo saat ini masuk /home/me/current
.
Saya kemudian melakukannya
git clone /home/me/current /home/me/temp
Ini membuat klon terpisah dari repo /home/me/temp
Sekarang saya dapat pergi /home/me/temp
dan melakukan apa pun yang saya inginkan. Sebagai contoh
git reset --hard commit-hash-before-delete
Sekarang saya dapat menyalin kembali folder file yang dihapus
cp -r /home/me/temp/some/deleted/folder /home/me/current/some/deleted/folder
Dan hapus folder temp
rm -rf /home/me/temp
Contoh dari
git checkout -- some/deleted/folder
git checkout -- some/deleted/folder/*
TIDAK BEKERJA
$ 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.
Contoh lain seperti
git reset --hard HEAD
merusak lebih dari sekadar file yang dihapus. Perubahan lainnya juga akan hilang.
Demikian pula
git reset --hard some-commit
akan kehilangan komitmen apa pun setelahnya some-commit
git status
akan memberi Anda petunjuk tentang perintah apa yang harus dijalankan