Windows için GitHub'ın "senkronizasyonu" ne yapar?


87

Windows için GitHub ile bir dalı "yayınlayabilir" ve ardından bu dalı GitHub ile "senkronize edebilirsiniz".

görüntü açıklamasını buraya girin

Senkronizasyon temelde bir git pullve git pushmi? Yoksa daha fazlası mı var? Komut satırından "senkronizasyon" ile aynı adımları yapmak istersem ne yapmalıyım?

(Açık Kaynak değil, yoksa sadece okurdum.)

Yanıtlar:


52

Senkronizasyon yapar git pull --rebaseve sonra yerel değişiklikler varsa, yapar git push.

Buradan: http://haacked.com/archive/2012/05/21/introducing-github-for-windows.aspx#87318


2
Rebase adımı sırasında bir çakışma olursa ne olur?
Svante

26
@Svante başarısız olur ve karışıklığı çözmeniz için bir kabuk açmayı teklif eder. Bu sayfaya nasıl
ulaştım

8
Bu hala doğru mu? Az önce bir senkronizasyon yaptım ve bir birleştirme tamamlama ile son buldum, eğer akış şu ise asla olmamalı: git pull --rebase; git push
Micah Zoltu

@Michas Caldwell'in yorumu için herhangi bir açıklama, onun haklı olduğuna inanıyorum?
benchuk

Şimdi Sync'e basmanın a git pullyerine bir yaptığını git pull --rebase, böylece ek bir Merge dalı 'master'ı ... commit ' oluşturduğunu doğrulayabilir .
Leo

42

Yukarıdaki cevap iki yıldan daha uzun bir süre önce olduğu için, bu soruya güncellenmiş bir cevap şudur: Rebase'deki bazı hatalar nedeniyle , "senkronizasyon" düğmesi git pull --rebaseartık çalışmıyor. Bunun yerine, bu sürüm notlarına göre (bkz. Sürüm 1.3.0) çakışma olması durumunda birleştirmegit pull yapacak .

Yukarıdaki bağlantı şu anda kullanılamıyor. İşte yeni sürüm notları .


2
Aslında bu tamamen doğru değil. YALNIZCA bir yeniden ödeme işe yaramazsa, birleştirme yapmaya çalışır.
Joris Meys

Sürüm notları bağlantısı kesildi.
skolima

2
@JorisMeys İfadenizin doğru olduğundan emin değilim. Tecrübelerime göre, uzaktaki benim önümde herhangi bir taahhüt varsa , geri ödeme yapabilse bile bir birleştirme taahhüdü yaratacaktır.
Jerad Rose

@JeradRose Yorumumu yazdığımda Github Desktop v. 2.x'teydik ve şimdiye kadar 3.3'teyiz :-) Ama haklısın, ben de aynısını fark ettim.
Joris Meys

17

"Senkronizasyon", yerel şubenizin uzak şubenizle eşleşmesi için gerekli herhangi bir eylem olacaktır. Yerel şubeniz, uzak şubenizin yapmadığı taahhütlere sahipse, "senkronizasyon" şubenizi zorlar. Uzak dal yerel şubenizin önündeyse, o zaman önce "senkronizasyon" çeker (özellikle, Phil Haack tarafından açıklandığıgit pull --rebase gibi ). "Senkronizasyon", yerel ve uzaktan kumandanın birbirini yansıtması için sadece bir kısayol.

Gönderen GitHub sitesinde :

The sync button turns the complex workflow of pulling and pushing into a single operation. It notifies you when there are new changes to pull down and lets you quickly share local changes.


Sadece çekmekle kalmıyor - çok önemli bir fark olan "git pull - rebase" yapıyor. Ayrıca, siparişiniz yanlış, itmeden önce çekin.
Andiih

2
@Andiih Dilim genelleştirildi ve sıralı bir operasyon listesi değildi. Sipariş ima edildi - "Uzak şube gibi bildirimin diyorum oldu ilerisinde il teşkilatının"? Açıklamam ayrıca GitHub sitesinden doğrudan bir alıntıydı. Ne olursa olsun, Matt Rix'in cevabı daha ayrıntılı ve cevap olarak işaretlenmeyi hak ediyor. Cevabımdaki herhangi bir karışıklığı açıklığa kavuşturmak için bazı küçük düzenlemeler yaptım.
redhotvengeance

Github senkronizasyonu, orijine ek olarak yukarı akış değişikliklerini de getirir. Yani bir repo yaptım ve çatalın yerel bir klonuna sahip oldum, gerçekten istediğim şey yukarı
akıştan

1
@AaronLS Windows için GitHub şu anda yalnızca bir uzaktan kumanda ile çalışmak üzere oluşturulmuştur origin. Birden fazla uzaktan kumanda ile çalışmak için komut satırını kullanmanız gerekir. İlgili bilgiler burada , "Çoklu Git uzaktan kumandaları ve GitHub olmayan uzaktan kumandalar" altında bulunabilir.
redhotvengeance

4

Ethanyang en @ eklemek için cevap ,

Gitconfig'de yapılandırılan takma ada göre,

[alias]
...
sync = !git pull && git push

4
Sadece meraktan, ne işe yarar! yukarıdaki satırda ne demek?
Scott Romack

@ScottRomack, bunun bir kabuk komutu olarak değerlendirildiği anlamına gelir: stackoverflow.com/questions/21083933/…
Nicolas Holthaus

GitHub Desktop'ta bu takma ad zaten ayarlanmış mı? Öyleyse, bu yapılandırma nerede bulunur? Bu takma adı globalde görmedim .gitconfig. Yoksa bu sadece sizin geçersiz kılmanız mı?
james
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.