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.