Listelediğiniz adımlar işe yarar, ancak size daha fazla seçenek sunmanın daha uzun bir yolu vardır:
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
fetch
Önce komut herhangi bir noktada yapılabilir merge
, yani sen sırasını takas edebilir alıp nedeniyle çıkış, fetch
sadece uzaktan adlandırılmış (gitse origin
) ve ona der ki: "çak bir şeyi sen bende olmayan şey var ", yani, tüm dallarda taahhüt eder. Deponuza kopyalanırlar, ancak uzaktan kumandadaki origin/branch
herhangi bir dal için adlandırılırlar branch
.
Bu noktada git log
, gitk
"sahip olduklarını" görmek için herhangi bir görüntüleyiciyi ( , vb.) Kullanabilirsiniz . Bazen bu sadece Sıcak Bulanık Duygular için yararlıdır ("ah, evet, aslında istediğim budur") ve bazen stratejileri tamamen değiştirmek için yararlıdır ("whoa, henüz bu şeyleri istemiyorum").
Son olarak, merge
komut, adlandırabileceğiniz verilen taahhüdü origin/master
alır ve o taahhüdü ve atalarını getirmek için ne gerekiyorsa yaparsanız, çalıştırdığınızda hangi dalda olursanız olun merge
. Bir hızlı ileri sarmayı ekleyebilir --no-ff
veya --ff-only
önlemek için veya isterseniz sonuç hızlı ileri sarılmışsa birleştirebilirsiniz.
Diziyi kullandığınızda:
git checkout dmgr2
git pull origin master
pull
Komut talimatını çalıştırmak git'e git fetch
ve daha sonra ahlaki eşdeğer git merge origin/master
. Dolayısıyla bu, iki adımı elle yapmakla neredeyse aynıdır, ancak muhtemelen sizinle ilgili olmayan bazı ince farklılıklar vardır. (Özellikle fetch
adım koşmak pull
getiriyor sadece origin/master
ve senin repo ref güncelleme değildir: 1 herhangi bir yeni onaylatabilirsiniz rüzgarlar sevk-sadece özel tarafından FETCH_HEAD
. Referansı)
Daha açık git fetch origin
(daha sonra isteğe bağlı olarak etrafa bakın) ve ardından git merge origin/master
sıra kullanırsanız, master
uzaktan kumandayla kendi yerel fetch
ağınızı da güncelleyebilirsiniz ve ağda yalnızca bir tane çalışır:
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
Örneğin.
1 Bu ikinci bölüm değiştirildi - "sabit" diyorum - git 1.8.4'te artık "uzak dal" referanslarını fırsatçı olarak güncelliyor. (Sürüm notlarında belirtildiği gibi, güncellemeyi atlamak için kasıtlı bir tasarım kararıydı, ancak daha fazla kişinin git güncellemesini tercih ettiği ortaya çıktı. Eski uzak dal SHA-1'i istiyorsanız, varsayılan olarak kaydediliyor ve bu da geri dönüşlüdür, bu da yukarı akış referanslarını bulmak için yeni bir git 1.9 / 2.0 özelliği sağlar.)