Birleştirme, güncelleme ve kullanıma alma kullanmadan dalları Çek Git
Ben 2 Şubesi olan bir proje üzerinde çalışmak, A ve B ben tipik Bir şube üzerinde çalışmak ve birleştirmek İçin şube B şeyleri birleştirme, genellikle yaparım:
git merge origin/branchB
Ancak, aynı zamanda şube B yerel bir kopyasını tutmak istiyorum, bazen ilk bu şube benim A. ile birleştirme olmadan Dalı kontrol gibi yapardım:
git checkout branchB
git pull
git checkout branchA
Bir yol şube ileri ve geri geçiş yapmak zorunda kalmadan tek bir komuta ve yukarıdaki yapmak var mı? Bunun için git update-ref kullanarak olmalıdır? Nasıl?
CEVAP
Kısa Cevap
Bir yaptığın sürece-hızlı ileribirleştirme, sonra sadece kullanabilirsiniz
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
Amber's answer de çalışır hızlı ileri durumlarda kullanarak git fetch Bu yol yerine biraz daha güvenli sadece kuvvet şube hareket referans, beri git fetch otomatik olarak önlemek, kaza sonucu olmayan hızlı ileri olarak kullanmayın refspec.
Uzun Cevap
Eğer bir yol olsaydı Bir ilk kontrol-hızlı ileri sarma sigara birleştirme olmadan Bir şube bir şube B birleştirme yapamazsınız. Bu çalışma bir kopyasını herhangi bir potansiyel çatışmaları çözmek için gerekli olmasıdır.
Ancak-hızlı ileri birleştirmesi durumunda, bu mümkündürböyle samimi asla çatışmalara neden olabilir , çünkü, tanımı. Bir şube kontrol etmeden bunu yapmak için, bir refspec git fetch kullanabilirsiniz.
Buradaysa feature kontrol dışında başka bir şube varsa master (non-hızlı ileri değişiklikler izin vermeme) güncellenmesi için bir örnek:
git fetch upstream master:master
Bu kullanım vakası muhtemelen bunun gibi gıt yapılandırma dosyası için bir ad yapmak isteyeceksiniz o kadar yaygındır:
[alias]
sync = !sh -c 'git checkout --quiet HEAD; git fetch upstream master:master; git checkout --quiet -'
Bu diğer yaptığı şey şudur:
git checkout HEAD: bu kafa müstakil bir devlet haline çalışma kopyası koyar. Bu kontrol için ne isemastergüncellemek isterseniz faydalıdır. Aksi takdirdemasterşube başvuru hareket etmiyor çünkü gerekli olduğunu düşünüyorum, ama eğer gerçekten kafamın üstü kapalı haklıysa hatırlamıyorum.git fetch upstream master:master:origin/mastermasteraynı yerde yerel ileri hızlı bu.git checkout -sizin daha önce teslim şube (-bu durumda ne yapar) denetler.
(Olmayan)hızlı ileri sarmak için git fetch sözdizimi birleştirir
Eğer varsa güncelleme-hızlı ileri sarma sigara ise fetch komutu başarısız olmak istiyorsanız, o zaman sadece form refspec kullanın
git fetch <remote> <remoteBranch>:<localBranch>
Eğer non-hızlı ileri güncelleştirmeleri izin vermek istiyorsanız, o zaman refspec önüne ekleyin:
git fetch <remote> <remoteBranch>:<localBranch>
"" Parametresini kullanan .: . uzak olarak yerel repo iletebilirsiniz unutmayın
git fetch . <sourceBranch>:<destinationBranch>
Belgeleri
git fetch documentation that explains this syntax (vurgu benim): gelen
<refspec>Biçimi
<refspec>parametre isteğe bağlı artıardından kaynak ref<src>, ardından bir kolon:, ardından hedef ilan no<dst>.
<src>eşleşen uzaktan ref getirilen, ve eğer<dst>boş bir dize ise, eşleşen yerel ref hızlı biçimde ileri<src>kullanıyor. Eğer isteğe bağlı artıkullanılıyorsa, yerel hakem eğer ileri bir güncelleme olarak değilse bile güncellenir.

Güncelleme başarısız Homebrew:; Lütfen...
Bir SQL Server'da tablo BİRLEŞTİRME ku...
taklit ne kadar "Ekle Yoksay"...
"Çek" veya "git birleşt...
güncelleme-Endeksi --git farz-değişmed...