SORU
16 Kasım 2009, PAZARTESİ


'git pull origin mybranch' yerel mybranch N kökenli önde tamamlar bırakır. Neden?

Ben sadece anlamadığım git pull, hakkında garip bir şey gözlemlediler.

Cuma günü, yerel bir şube üzerinde çalıştım. hadi mybranch Ara. Ofis kökeni benim github repo) ben bastırdım terk etmeden önce: git push origin mybranch.

Evde dün pulled dizüstü Bilgisayarım için mybranch, biraz daha kodlama yaptı, ve sonra github sırtımda değişiklikler itti (kökenli).

Şimdi tekrar iş başı yapıyorum ve iş makinama dün (hafta sonu çalışması ... ... oranın yerel repo hiçbir şey değiştirmedim): değişiklikleri çekmeye çalıştı

git pull origin mybranch

bu bir hızlı ve iyi olan ileri birleştirme neden oldu. Ben o zaman dedi git status ve bir yaptı

# On branch mybranch
# Your branch is ahead of 'origin/mybranch' by 6 commits.
#
nothing to commit (working directory clean)

Değil mi? Nasıl kökenli hatta hafta sonu dokun VE çekip alamayınca önde tamamlar 6 olabilir mi? git diff origin/mybranch ve farklar tam olarak ben sadece uzaktan çektiği 6 değişiklik yaptım.

Sadece "" çalıştırarak bu 11**:. tamir edebilirim

From git@github.com:me/project
af8be00..88b0738  mybranch -> origin/mybranch

Görünüşe göre, benim yerel repo bazı referans nesneleri eksikti, ama bu nasıl olabilir? Bir çekme yapar zaten getir ve git fetch origin git fetch origin mybranch aynı sonucu olmalıdır, böylece şube dışında bir şey üzerinde çalışma, etmedim mi?

Her zaman git pull origin branchname yerine git pull origin kullanmalıyım?

Kafam karıştı.

CEVAP
16 Kasım 2009, PAZARTESİ


git pull mevcut şube içine açıkça getirilen başları (veya hiçbiri uzak şube birleştirme için yapılandırılmış) birleştirmeden önce uygun parametreleri ile git fetch çağırır.

Sözdizimi: git fetch <repository> <ref> <ref> sadece bir şube isimde bir kolon bir 'tek çekim' getir yok bunu bir standart getirme tüm izlenen dalları belirtilen uzak ama yerine getirir sadece adında şube içine FETCH_HEAD.

Güncelleme:eğer getirmek istediğin ref izleyen dalın adı ise orada 1.8.4, o zamandan beri Git sürüm takip Dalı şimdi fetch tarafından güncellenecektir. Bu değişiklik, özellikle önceki davranışlarına neden olan karışıklığı önlemek için yapıldı.

Ne zaman sen gerçekleştirmek git pull <repository> <ref>, FETCH_HEAD profesyonel olarak yukarıda, sonra birleştirilmiş halinde teslim HEAD ama hiçbiri standart izleme dalları için uzaktan depo olacak güncelleme (Gıt <1.8.4). Bu yerel olarak anlamına gelirgörünüyoruzak şube daha önde gibi, aslında ise güncel.

Şahsen ben her zaman ben birleştirmeden önce zorla güncellemeler hakkında herhangi bir uyarı görüyorum çünkü git fetch git merge <remote>/<branch> takip ve birleştirme ne tür bir önizleme olabilir. Eğer kullandım git pull biraz daha yaparım, yapardım, bir düz git pull ile herhangi bir parametre çoğu zaman, güvenerek branch.<branch>.remote branch.<branch>.merge 'doğru olanı yap'.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • majesticdubstep

    majesticdubs

    3 Kasım 2011