2013-03-01 12 views
6

devel şubem var ve kaynağı/ana güncelleştirildi. git pull çalıştırıyorum ve uzaktan değişiklikleri görebiliyorum. Ancak, daha önce git checkout devel yaptığımda yerel ana ana kaldığım yerdeyim. menşe/ana değişikliklerini devel dalında birleştirmek istiyorum; Böyle bir şube uzaktan da var. Ben büyük bir sistem yeniden inşa sona erecek olarakYerel master'ı başka bir şubeden uzaktaki master'a güncelle

Ben usta şube ödeme yapmamayı tercih ederim. Ben farklı daldan köken/ustası benim yerel usta taşıyabilir miyim? Ardından devel'dan merge yapabilirim. Ya da doğrudan devel sadece mergeköken/ustası daha kolaydır? Bu daha sonra sorun olacak gibi görünüyor?

Düzenleme: Bu sorunu önlemek için başka bir yol, aynı depo ile farklı çalışma alanlarını kullanmaktır.
Bkz: git new workdir - İki usta ve devel olabilir aynı anda kullanıma ama aynı .git depo kullanarak.

cevap

8

güncellenmesi arasındaki tek fark senin yerel masterorigin/master ve sonra vs sadece doğrudan origin/master birleştirme, bunu birleştirme olduğunu önceden oluşturulmuş (iyi, varsayarak sonunda master güncellemek) birleştirme mesajı işlemek. Yani ben sadece origin/master içinde birleştirin derim.

söyledi

, sen

git push . origin/master:master 

Bu git push makinelerini kullanan söyleyebiliriz, soru "nasıl kendi izleme şube maç için yerel olmayan kontrol aşımı dalı güncelleyebilirim" cevap ancak .'un bir deposu "mevcut repo" anlamına gelir. Kaynak şubeniz origin/master ve uzak şubeniz master olarak belirtildi, bu nedenle master güncellemeleri origin/master ile eşleşecek. Sen tesisat komutuyla git update-ref ile aynı şeyi, ama git push kullanarak basit ve biraz daha güvenli (Bu engeller, çünkü olmayan hızlı ileri varsayılan olarak birleştirir ve bunu da kontrol aşımı şubesine iterek önleyecektir inanmak) olabilir . Varsayılan olarak

+4

Hey, bu yerel itme ile harika bir numara, teşekkürler! – poke

2

, git pull uzak şubesinden getirme ve mevcut şube birleştirilir. git pull komutunda bir şube belirtmezseniz, Git, genellikle uzak izleme dalınız olan dalınız için belirtilen alanı kullanır.

Yani ancak ustadan uzak mesafede devel dalı alıp oradan değişiklikleri birleştirmeyi öngören sizin devel branşında git pull çalışan. Sadece git fetch çalışan uzaktan kumanda için tüm uzaktan dalları güncelleyecektir

Not. Yani origin/master, yalnızca git merge origin/master'u kullanarak o andaki dalınıza birleştirmenizi sağlayan getirildikten sonra güncellenecektir.

Açıkçası bu olsa yerel usta güncelleme geçmeyecek, bunu içine senin devel şube birleştirme önce, bunu da sonradan güncellemek isteyebilirsiniz.

İlgili konular