Hep düşündüm git resetve git checkouther 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 cotaahhüt geri dönmek zorunda olduğu gibi, biraz kafam karıştı .
KATMA
VonC ve Charles arasındaki farkları açıkladı git resetve git checkoutgerçekten iyi. Şimdiki anlayışım, git resettüm değişiklikleri belirli bir taahhüde geri döndürürken, git checkoutaz ç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
-- filesVaryantlarla 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.netveri kaybını önlemek için ek adımlar (bağlantılı makalede sağlanan ) gerektiğini lütfen unutmayın .


