SORU
20 AĞUSTOS 2010, Cuma


Git reset arasındaki fark --karışık --yumuşak ve sert --ne?

Bir işlemek ve kullanmak için değil emin split için arıyorum.

Ama gerçekten gıt dizin veya çalışma alanında ne anlamıyorum farkettim title bir umut vardır sayfa bakıyordum ve bu açıklamalar yardımcı olmadı.

Ayrıca bu cevap (düzeltme ve yeniden değerlendirmeyi istediğinizde.) kullanımı karışık ... yumuşak bir görünüm için davalar bana aynı Biri bile fazla zarar verebilir? --Karışık mutlaka seçeneği olduğunu biliyorum, ama bilmek istiyorum . ben^>neden. Son olarak, ne zor?

Biri bana üç seçeneklerinden biri olacağını, nasıl bir iş akışı örnek verebilir misiniz?

CEVAP
20 AĞUSTOS 2010, Cuma


Eğer depodaki bir dosyayı değiştirdiğinizde, değişiklik başlangıçta unstaged. Bunu tamamlamak için,—o, add dizini kullanarak git add için sahne gerekir. Bir taahhüt yaptığınızda, işlenmesi değişiklik dizine eklenmiş olanlardır.

git reset mevcut şube (HEAD) burada gösteren, en az değiştirir. --mixed --soft arasındaki fark ya da değil, senin dizin de değişiklik olsun. Eğer şube üzerinde kalırsak, master işleyen bu dizi ile

- A - B - C (master)

HEADC ve dizine eşleşmelerinin C.

Ne zaman kaçıyoruz git reset --soft B, master (ve böylece HEAD) şimdi puan B ama endeks hala değişiklikler C; git status gösteri olarak sahnelenecek. Bu noktada git commit eğer kaçarsak, yeni C aynı değişiklikleri ile taahhüt ederiz.


Tamam, buradan tekrar başlangıç:

- A - B - C (master)

Şimdi git reset --mixed B. Bir kez daha, master HEAD B noktasına, ama bu sefer de dizin B maç için değiştirilir. Bu noktada git commit gidersek, hiçbir şey Endeksi HEAD maçlar yana olacak. Biz hala çalışma dizini değişiklikler var, ama, git status dizin içinde değiller beri onları unstaged gösterir. Onları bağlamak için, 28 ** ve her zamanki gibi taahhüt sonra.


Ve son olarak, 29 ** --mixed (HEAD endeks değişiklikleri), --hard ayrıca çalışma dizinini değiştirir. Ya C git reset --hard B, sonra değişiklikleri eklendi C olarak kaydedilmemiş değişiklikler var, kaldÄ ± rÄ ± lacak ve dosyalarda çalışma kopyası olacak maç tamamlama B. Kalıcı değişiklikler bu şekilde kaybedebilir beri, her zaman bir sabit sıfırlama çalışma dizini temiz veya kaydedilmemiş değişiklikleri kaybetme ile Tamam olduğundan emin olmak için yapmadan önce git status çalıştırmalısınız.


Ve son olarak, bir görselleştirme: enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AndyMcMillinTV

    AndyMcMillin

    6 HAZİRAN 2007
  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013