Git - bazı dosyaları yerel olarak sildi, onları uzak bir depodan nasıl edinebilirim


110

Bilgisayarımdaki bazı dosyaları sildim, bunları tekrar nasıl indirebilirim?

Çekme, "Zaten güncel" diyor.


1
Git'i kullandığınızda tüm depo geçmişi yerel olarak mevcut olduğundan, "onları tekrar indirmenize" gerek yoktur.
— cdhowie

onları yerelden nasıl alacağını biliyor musun?
— Charlie Parker

Yanıtlar:


164

Git dağıtılmış bir VCS olduğundan, yerel deponuz tüm bilgileri içerir. İndirme gerekmez; depodan istediğiniz içeriği parmaklarınızın ucunda çıkarmanız yeterlidir.

Silme işlemini gerçekleştirmediyseniz, mevcut kaydetmenizdeki dosyalara göz atın:

git checkout HEAD <path>

Silme işlemini gerçekleştirdiyseniz, dosyalara sahip olan bir işlemden dosyaları teslim almanız gerekir. Muhtemelen bu önceki taahhüt olacaktır:

git checkout HEAD^ <path>

ancak nönce tamamlanırsa, kullanın HEAD~nveya basitçe gitkateşlenirse, uygun işlemin SHA1'ini bulun ve yapıştırın.


2
sadece bir yan yorum olarak, bu aynı zamanda tam bir dizin için de çalışır, özel değildir veya tek bir dosyaya özgü değildir (en azından denediğimde çalıştı). Thnx btw.
— Charlie Parker

5
NB, <path>sadece .geçerli dizin için nokta olsa bile zorunludur . Ancak "dal" ( HEADyukarıdaki örnekte) isteğe bağlıdır. Pek çok Git komutunda olduğu gibi, ne çıktı ne de yardım yardımcı olur.
— MarkHu

39

git checkout filename

git reset --hard hile de yapabilir


9
git reset --hardYöntemi kullanırken uyarı, çünkü tüm ağacı HEAD / HEAD ^ / HEAD ~ n koyduğunuz w / e konumuna geri döndürecek ve bunu önyargısız yapacak ve potansiyel olarak çok fazla taahhüt kaybedecek ...
— g19fanatic

git checkout dosya adı benim için
— cevaptı

git checkout dosya adı yalnızca boş bir dosya oluşturuyor
— mrek

istenen klasöre yerleştirildi ve git checkount .bir çekicilik gibi çalıştı!
— hzitoun

21

Yerel olarak birden fazla dosyayı sildiyseniz ancak henüz işleme koymadıysanız, teslim almaya zorlayabilirsiniz.

$ git checkout -f HEAD

"Zaten güncel" çıktısından da anlaşılacağı gibi, bu soruyu soran kişi son zamanlarda hiçbir şey yapmadı. Git checkout -f HEAD'in TEHLİKELİ olduğunu belirtmeniz gerekir mi? Gerçekleştirilmemiş yerel değişiklikleri geri alabileceği için (önceki dosyaları geri yüklemek olumlu sonuçtur, düzenlenen dosyalardaki değişiklikleri olumsuz olanı kaybetmek).
— Lionel Trebuchon

15

Yerel olarak birden fazla dosyayı sildiyseniz ve değişiklikleri gerçekleştirmediyseniz, yerel depo yolunuza gidin, git kabuğunu açın ve yazın.

$ git checkout HEAD .

Son işlemden önce silinen tüm dosyalar kurtarılacaktır.

Ekleme "." mevcut arşivdeki tüm silinmiş dosyaları kendi yollarına geri yükleyecektir.

Daha fazla ayrıntı için belgelere bakın .


2

Dosyaları silmeden önce bir önceki sürüme bakmanız gerekir. git checkout HEAD^Son revizyonu kontrol etmeyi deneyin .


0

Ayrıca, git deposunun IDE ile doğru bir şekilde bağlanması için aşağıdaki adımları yapmayı ekliyorum:

 $ git reset <commit #>

 $ git checkout <file/path>

Umarım bu yardımcı olmuştur !!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.