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 fetch
yerine 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 .
master
Başka bir şubeniz feature
teslim 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 master
sırasında güncelleme yapmak istiyorsanız kullanışlıdır . Sanırım bunun için gerekliydi çünkü aksi halde şube referansı master
hareket etmiyor, ama bunun gerçekten başımın üstünden olup olmadığını hatırlamıyorum.
git fetch upstream master:master
: bu, lokalinizi master
ile 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 fetch
gü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 fetch
bu 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