İzlenen uzak bir şubeden yapılan değişikliklerle yerel bir şubeyi güncelleyin


105

my_local_branchUzak bir dalı izleyen ' ' adlı yerel bir şubem var origin/my_remote_branch.

Şimdi, uzak şube güncellendi ve ben ' my_local_branch' üzerindeyim ve bu değişiklikleri yapmak istiyorum. Sadece yapmalı mıyım:

git pull origin my_remote_branch:my_local_branch

Bu doğru yol mu?

Yanıtlar:


75

O şubenin yukarı akışını ayarladınız

(görmek:

git şube -f --track my_local_branch kaynak / my_remote_branch
# VEYA (benim_local_branch'ım şu anda kontrol edilmişse):
$ git dal - başlangıç-başlangıç-yerel_döşüm kaynağım / uzağım_branch

( git branch -f --trackdal kullanıma alınmışsa çalışmaz: git branch --set-upstream-to onun yerine ikinci komutu kullanın, aksi takdirde " fatal: Cannot force update the current branch." alırsınız )

Bu, şubenizin zaten yapılandırıldığı anlamına gelir :

branch.my_local_branch.remote origin
branch.my_local_branch.merge my_remote_branch

Git gerekli tüm bilgilere zaten sahip.
Bu durumda:

# if you weren't already on my_local_branch branch:
git checkout my_local_branch 
# then:
git pull

yeterlidir.


Eğer iş " my_local_branch' inizi zorlamaya geldiğinde bu yukarı akış kolu ilişkisini kurmamış git push -u origin my_local_branch:my_remote_brancholsaydınız , yukarı akış şubesini itmek ve kurmak için basit bir işlem yeterli olurdu .
Bundan sonra, sonraki çekimler / itmeler için, git pullya git pushda yine yeterli olurdu.


OP, uzak şubeyi zaten takip ettiklerinden bahseder.
Amber

7
@Amber dolayısıyla cevabım: git pullyeterli.
VonC

İlk komut git branch -f --track master origin/masterbir hata döndürüyor:fatal: Cannot force update the current branch.
Mark Kramer

@MarkKramer Evet, yerel şube şu anda teslim alınmışsa ikinci komutun kullanılacağını daha net hale getirmek için cevabı düzenledim.
VonC

Ayrıca bu olarak değişmelidir --set-upstream-to, --set-upstreamkullanımdan kaldırılmış ve kaldırılması için gidiyor.
Mark Kramer

94

:Sözdizimini kullanmazsınız - pullher zaman şu anda teslim alınmış dalı değiştirir. Böylece:

git pull origin my_remote_branch

siz my_local_branchkontrol ederken istediğinizi yapacaksınız.

Zaten izleme şubesini ayarladığınız için, belirlemenize bile gerek yok - sadece yapabilirsiniz ...

git pull

siz my_local_branchödünç verdiğiniz sırada takip edilen şubeden güncellenecektir.


1
Bu doğru cevap olmalı. Bu kadar basit.
m4l490n
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.