Yerel bir şubeden diğerine nasıl “çekilir”?


231

Bu kulağa çok basit geliyor, ama anlayamıyorum. Bir süre önce deneysel bir dal yaptım ve şimdi ustamda yaptığımdan beri meydana gelen tüm değişiklikleri çekmek istiyorum. Bunların hepsi yerel. Yerel ustadan yerel my_branch'a çekmek istiyorum, ama yapamam. Bu işe yaramaz gibi görünüyor, bana ustanın git deposu olmadığını söylüyor:

git pull master

Yanıtlar:


339

git'e nereden çekileceğini, bu durumda geçerli dizinden / depodan söylemelisiniz:

git pull . master

ancak yerel olarak çalışırken, genellikle birleştirme çağrısı yaparsınız (dahili olarak birleştirme çağrılarını alırsınız):

git merge master

1
Sevdim git pull . masterçünkü bence kökeninden yeni bir şey olup olmadığını kontrol edecek. Bu doğru mu?
Josiah Yoder

1
@JosiahYoder no, pull .özellikle Git'e adresinde bulunan depodan .(yani geçerli dizin / depo) çekmesini söyler . origin" .git/configdosyada tanımlanan havuz konumu ne olursa olsun (genellikle bir havuzu
kopyalarken

1
Ah! Peki git pull . mastermenşe yerine yerel depodan çekilir mi? (Kökeni getirme yok !?) O zamandan daha git pull . masterfazla avantaj var mı git merge master?
Josiah Yoder

2
@JosiahYoder evet tam olarak, menşe depo yerine yerel depodan "çeker". Hiçbir getirme yapılmaz (çünkü yerel depodaki her şey zaten buradadır!). Avantaj yok - her iki komut da aşağı yukarı aynı şeyi yapıyor. Hızlı ileri sarma yapıyorsanız, push . origin/branch:branchyerel şubeleri ilk önce kontrol etmeden güncellemek için (çekme değil) kullanabilirsiniz.
knittl

Seni övüyorum. Greyskull'ın gücü ile!
R Claven

45

Aradığın şey birleşmek.

git merge master

İle pullUzak bir deposundan değişiklikleri getirme ve mevcut şube onları birleştirmek.


38

Oldukça eski yazı, ama git yeni birisine yardımcı olabilir.

İle gideceğim

git rebase master
  • çok daha temiz günlük geçmişi ve birleştirme taahhütleri (doğru şekilde yapılırsa)
  • Çatışmalarla başa çıkma ihtiyacı var, ama o kadar da zor değil.

1
bir geliştirme ekibinin dallanma süreçlerini yönetmesi için kesinlikle birçok yol vardır. Şahsen ben 8 yıldır git kullanıyorum ve asla geri dönmek zorunda kalmadım. Her zaman birleştirme kullanıyorum ve her zaman ihtiyaçlarımı karşıladı. Şüphesiz, yeniden birleştirmeyle, tıpkı birleştirme gibi, git'in iki değişiklik kümesinin "birleştirilmesi" nin doğru sonucuna otomatik olarak karar veremediği senaryolar ortaya çıkabilir. "Daha temiz" bir taahhüt geçmişi hakkında konuştuğunuz nokta ile ilgili olarak. Şahsen benim tercihim, tüm "taahhüt arkeolojisi" yapmam gerektiğinde (genellikle olduğu gibi!)
user3441604

-1

Yerelden ustaya gibi başka bir şubeden yepyeni bir çekiş arıyorsanız, bunu takip edebilirsiniz.

git commit -m "Initial Commit"
git add .
git pull --rebase git_url
git push origin master
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.