Kısa Cevap
Hızlı ileri birleştirme yaptığınız sürece,
git fetch <remote> <sourceBranch>:<destinationBranch>
Örnekler:
# Merge local branch foo into local branch master,
# without having to checkout master first.
# Here `.` means to use the local repository as the "remote":
git fetch . foo:master
# Merge remote branch origin/foo into local branch foo,
# without having to checkout foo first:
git fetch origin foo:foo
İken Amber'ın cevabı da kullanarak hızlı ileri vakalarda, çalışma olacak git fetchyerine bu şekilde bu yana, sadece kuvvet-hareket eden şube başvurusu biraz daha güvenlidirgit fetch otomatik yanlışlıkla olmayan hızlı ileri sürece kullanmayın olarak engeller +içinde refspec.
Uzun Cevap
Hızlı ileriye doğru birleştirme işlemine neden olacaksa, bir A dalını önce A'yı denetlemeden A dalına birleştiremezsiniz. Bunun nedeni, olası çakışmaları çözmek için çalışan bir kopyaya ihtiyaç duyulmasıdır.
Ancak, hızlı ileri birleştirme durumunda, bu mümkündür , çünkü bu tür birleştirme tanım gereği asla çatışmalara neden olamaz. Bunu önce bir şubeye bakmadan yapmak için şunu kullanabilirsiniz:git fetch bir refspec ile .
masterBaşka bir şubeniz featureteslim alınmışsa güncelleme (hızlı ilerlemeyen değişikliklere izin vermeme) örneği :
git fetch upstream master:master
Bu kullanım örneği o kadar yaygındır ki, git yapılandırma dosyanızda bunun gibi bir takma ad yapmak istersiniz, örneğin:
[alias]
sync = !sh -c 'git checkout --quiet HEAD; git fetch upstream master:master; git checkout --quiet -'
Bu takma adın yaptığı şudur:
git checkout HEAD: Bu, çalışma kopyanızı bağımsız bir kafa durumuna getirir. Bu, kullanıma alma işlemi mastersırasında güncelleme yapmak istiyorsanız kullanışlıdır . Sanırım bunun için gerekliydi çünkü aksi halde şube referansı masterhareket etmiyor, ama bunun gerçekten başımın üstünden olup olmadığını hatırlamıyorum.
git fetch upstream master:master: bu, lokalinizi masterile aynı yere hızlı bir şekilde iletir upstream/master.
git checkout -daha önce kullanıma alınmış şubenizi kontrol eder ( -bu durumda ne yapar).
git fetch(İleri) olmayan hızlı ileri birleştirme sözdizimi
İsterseniz fetchgüncelleme olmayan hızlı ileri ise komut başarısız o zaman basitçe formun bir refspec kullanmak
git fetch <remote> <remoteBranch>:<localBranch>
Hızlı ilerlemeyen güncellemelere izin vermek istiyorsanız +, refspec'in önüne bir eklersiniz:
git fetch <remote> +<remoteBranch>:<localBranch>
Yerel repo'yu "uzak" parametre olarak aşağıdakileri kullanarak geçirebileceğinizi unutmayın .:
git fetch . <sourceBranch>:<destinationBranch>
Dökümantasyon
Gönderen git fetchbu sözdizimini açıklar dokümantasyon (vurgu benim):
<refspec>
Bir <refspec>parametrenin biçimi isteğe bağlı bir artıdır +, arkasından kaynak ref <src>, iki nokta üst üste :ve ardından hedef ref gelir <dst>.
Eşleşen uzak ref <src>getirilir ve <dst>boş dize değilse , eşleşen yerel ref kullanılarak hızlı bir şekilde iletilir<src> . İsteğe bağlı artı+kullanılırsa, yerel ref, hızlı bir güncelleme ile sonuçlanmasa bile güncellenir.
Ayrıca bakınız
Git ağacına dokunmadan çıkış yapın ve birleştirin
Çalışma dizinini değiştirmeden birleştirme