Benim için çalışan tek şey, depoyu başka bir klasörde kontrol etmekti. Mevcut reponun içinde olduğunu varsayalım /home/me/current
.
Sonra yaptım
git clone /home/me/current /home/me/temp
Bu, deponun ayrı bir klonunu oluşturur. /home/me/temp
Artık gidip /home/me/temp
istediğimi yapabilirim. Örneğin
git reset --hard commit-hash-before-delete
Şimdi silinen dosya klasörünü geri kopyalayabilirim
cp -r /home/me/temp/some/deleted/folder /home/me/current/some/deleted/folder
Ve geçici klasörü sil
rm -rf /home/me/temp
Örnekleri
git checkout -- some/deleted/folder
git checkout -- some/deleted/folder/*
ÇALIŞMA
$ 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.
Gibi diğer örnekler
git reset --hard HEAD
sadece silinen dosyaların ötesinde yıkıcıdır. Diğer tüm değişiklikler de kaybolacaktır.
benzer şekilde
git reset --hard some-commit
sonrasındaki herhangi bir kaydı kaybedecek some-commit
git status
hangi komutların çalıştırılacağı konusunda size bir ipucu verecek