git tüm dosyaları kontrol et


127

Arşivimin tüm dosyalarındaki tüm değişikliklerden nasıl kurtulabilirim?

Diyelim ki bir şubedeyim ve bazı değişiklikler yaptım. git status"Kaydetme için hazırlanmayan değişiklikler" içinde bir dizi dosya döndürür ve tüm dosyalardaki tüm bu değişikliklerden kurtulmak istediğimi fark ettim. Bunu tek bir komutla nasıl yapabilirim?

Tek bir dosyayı kontrol etmek için aşağıdakileri yapabileceğimi biliyorum:

git checkout -- <file>

git checkout --Tek başına tüm yüklenmemiş dosyaların listesini döndürdüğünü fark ettim . Ancak, hepsini kontrol etmenin bir yolunu bulamıyorum, gibi bir şey git checkout --all.

Kontrol ettim man git checkoutve hiçbir şey bulamadım. Ayrıca Git'i gördüm : Biri hariç tüm dosyaları kontrol et ve denedim git checkout .ve çalışmadı.

git checkout --Çıktı üzerinden döngü yaparak bunu programlı olarak yapmam gerekir mi?

Yanıtlar:


194

Çalışma dizininizin kök dizinindeyseniz, git checkout -- .geçerli HEAD'deki tüm dosyaları teslim almak ve yerel dosyalarınızı değiştirmek için yapabilirsiniz.

Ayrıca git reset --hard, çalışma dizininizi sıfırlamak ve tüm değişiklikleri (dizin dahil) değiştirmek için de yapabilirsiniz .


iki seçenek eşdeğer midir (HEAD olarak sıfırlarsak)?
lucidbrot

10
Hayır, belli farklılıklar var. Örneğin git checkout -- ., değişiklikleri yalnızca dizinin durumuna sıfırlar. Yani dizine zaten dosya eklediyseniz, bu ona sıfırlanacaktır. Öte yandan git reset --hard, dizini de çöpe atacaktır, bu nedenle, örneğin dizine eklenmiş izlenmemiş dosyalarınız varsa (onları izlemeye başlamak için), bunlar da kaldırılacaktır. git checkoutayrıca, çok yararlı olabilecek daha özel bir yolu geçerek çalışma dizinini yalnızca kısmen geri yüklemenize izin verir.
dürtmek


4
@poke Hi Poke, eminim git checkout -. çalışmıyor. Birden fazla aşamasız değişiklik için denedim.
Aman

2
Diğer komutlar aynı sonucu elde etmek: git checkout --force,git reset --hard
Tjalling

3

Yararlı bulduğum diğer bir yol:

git checkout <wildcard> 

Misal:

git checkout *.html

Daha genel olarak:

git checkout <branch> <filename/wildcard>

1
Kabuğunuzda globbing etkinse ve çalışma dizininde izlenmeyen dosyalar varsa, yıldız işaretinden çıkmadığınız sürece bu başarısız olacaktır, örneğin git checkout \*veya git checkout '*'.
Josh Cooley
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.