Git'te bir noob'um ve git pullvs arasındaki farkı öğrenmeye çalışıyorum git rebase. Her ikisinin de aynı amaca hizmet ettiğini düşündüğümden biri hangi seçeneğin ne zaman kullanılacağına bir örnek verebilir mi?
Git'te bir noob'um ve git pullvs arasındaki farkı öğrenmeye çalışıyorum git rebase. Her ikisinin de aynı amaca hizmet ettiğini düşündüğümden biri hangi seçeneğin ne zaman kullanılacağına bir örnek verebilir mi?
Yanıtlar:
git pullve git rebasebirbirinin yerine geçemezler, ancak birbirleriyle yakından bağlantılıdırlar.
git pullgeçerli şubenin en son değişikliklerini uzak bir yerden alır ve bu değişiklikleri şubenin yerel kopyasına uygular. Genellikle bu birleştirme yoluyla yapılır, yani yerel değişiklikler uzaktaki değişikliklerle birleştirilir. Yani git pullbenzer git fetch & git merge.
Yeniden oluşturma, birleştirmeye bir alternatiftir. İki dalı birleştiren yeni bir commit oluşturmak yerine, şubelerden birinin taahhütlerini diğerinin üzerine taşır.
Merge ( git pull --rebase) yerine rebase kullanarak çekebilirsiniz . Yaptığınız yerel değişiklikler, uzaktan değişikliklerle birleştirilmek yerine, uzak değişikliklerin üzerine yeniden yansıtılacaktır.
Atlassian, birleştirme ve yeniden satışa ilişkin bazı mükemmel belgelere sahiptir .
git-pull - Başka bir depodan veya yerel bir şube GIT PULL'dan alın ve entegre edin
Temel olarak uzak şubeyi yerel bölgenize çekiyorsunuz, örneğin:
git pull origin master
Ana dalı yerel deponuza çekecek
git-rebase - Güncellenmiş yukarı akış kafası GIT REBASE'e ileri-port yerel taahhütler
Bu, yerel değişikliklerinizi diğer kullanıcılar tarafından uzaktan yapılan değişikliklerin üzerine yerleştiriyor. Örneğin:
SOME-FEATUREŞimdi yerel şubenizde onun ve sizin değişikliklerinizi görmek istiyorsunuz. Öyleyse masterşubeyi kontrol edersiniz :
git checkout master
o zaman çekebilirsin:
git pull origin master
ve sonra şubenize gidersiniz:
git checkout SOME-FEATURE
ve masterondan en son değişiklikleri almak için yeniden ödeme yapabilir ve şube taahhütlerinizi en üste koyabilirsiniz:
git rebase master
Umarım şimdi sizin için biraz daha nettir.
git fetcho zaman git rebase origin/master.
Kısaca :
-> Git Merge: Sizin ve uzaktaki değişikliklerinizi basitçe birleştirecek ve bu başka bir kayıt geçmişi kaydı oluşturacaktır.
-> Git Rebase: Değişikliklerinizi tüm yeni uzaktan değişikliklerin üzerine koyacak ve commit geçmişini yeniden yazacak, böylece commit geçmişiniz git merge'den çok daha temiz olacaktır. Rebase, yıkıcı bir işlemdir. Bu, doğru şekilde uygulamazsanız, kararlı çalışmanızı kaybedebileceğiniz ve / veya diğer geliştiricinin depolarının tutarlılığını bozabileceğiniz anlamına gelir.