Hep düşündüm git reset
ve git checkout
her ikisi de bir spesifik işlemeye proje geri getirmek anlamında, aynı şekilde. Ancak, gereksiz oldukları için tam olarak aynı olamayacaklarını hissediyorum. İkisi arasındaki gerçek fark nedir? Svn sadece svn co
taahhüt geri dönmek zorunda olduğu gibi, biraz kafam karıştı .
KATMA
VonC ve Charles arasındaki farkları açıkladı git reset
ve git checkout
gerçekten iyi. Şimdiki anlayışım, git reset
tüm değişiklikleri belirli bir taahhüde geri döndürürken, git checkout
az çok bir şubeye hazırlanıyor. Aşağıdaki iki şemayı bu anlayışa gelmede oldukça yararlı buldum:
EKLENDİ 3
Http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html adresinden ödeme ve sıfırlama öykünebilir rebase.
git checkout bar
git reset --hard newbar
git branch -d newbar
-- files
Varyantlarla ilgili sorun olmayabilir ; emin değilim.) Bu şema, ana farkı, indeksi mi yoksa WD'yi mi etkilediğidir. Bununla ilgili cevabımı gör. 2. ve 3. diyagramlar gerçek farkı görmek için çok faydalıdır. 4. ve 5. diyagramlar, bu komutların ne yaptığını anladığınızı kontrol etmek için yararlıdır, ancak oraya ulaşmanıza gerçekten yardımcı olmaz.
think-like-a-git.net
veri kaybını önlemek için ek adımlar (bağlantılı makalede sağlanan ) gerektiğini lütfen unutmayın .