विंडोज 'सिंक' के लिए GitHub क्या करता है?


87

विंडोज के लिए गिटहब के साथ, आप एक शाखा को "प्रकाशित" कर सकते हैं और फिर उस शाखा को गीथहब में "सिंक" कर सकते हैं।

यहाँ छवि विवरण दर्ज करें

सिंक एक मूल रूप से है git pullऔर git push? या इसका कोई आगे का हिस्सा है? यदि मैं कमांड लाइन से "सिंक" के समान सटीक कदम करना चाहता था, तो मुझे क्या करना चाहिए?

(यह ओपन सोर्स नहीं है, या मैं अभी पढ़ूंगा।)

जवाबों:


52

सिंक करता है git pull --rebaseऔर फिर अगर स्थानीय परिवर्तन होते हैं, तो यह करता है git push

यहाँ से: http://haacked.com/archive/2012/05/21/introducing-github-for-windows.aspx#87318


2
यदि रिबेस चरण के दौरान कोई संघर्ष होता है तो क्या होता है?
Svante

26
@Svante यह बस विफल हो जाता है, और आपको गड़बड़ को सुलझाने के लिए एक खोल खोलने की पेशकश करता है। जो मुझे इस पेज पर मिला है :-)
Andiih

8
क्या यह अभी भी सच है? मैंने सिर्फ एक सिंक किया और एक मर्ज कमिटमेंट के साथ समाप्त हो गया, जो कभी नहीं होना चाहिए यदि प्रवाह है: गिट पुल - क्रेब; git push
मीका झोल्टू

@ मिचास कैलडवेल की टिप्पणी के लिए कोई भी स्पष्टीकरण, मेरा मानना ​​है कि वह सही है?
बेंच

पुष्टि कर सकते हैं कि अभी-अभी सिंक करने कीgit pull बजाय एक किया है git pull --rebase, इस प्रकार एक अतिरिक्त मर्ज शाखा 'मास्टर' का निर्माण ... कमिट।
सिंह

42

चूँकि उपरोक्त उत्तर दो साल से अधिक समय से था, इसलिए इस सवाल का एक अद्यतन उत्तर है: रिबेस के साथ कुछ बग के कारण , "सिंक" बटन git pull --rebaseअब नहीं करता है । इसके बजाय, यह करता है git pullजो इस रिलीज़ नोट्स के अनुसार संघर्ष होने पर विलय करेगा (रिलीज 1.3.0 देखें)।

उपरोक्त लिंक इस समय उपलब्ध नहीं है। यहाँ नए जारी नोट है


2
दरअसल, यह पूरी तरह सच नहीं है। केवल अगर एक रिबास काम नहीं करता है, यह एक मर्ज करने की कोशिश करता है।
जोरिस मेय्स

रिलीज नोट्स लिंक टूट गया है।
स्किलिमा

2
@JorisMeys मुझे यकीन नहीं है कि आपका बयान सच है। मेरे अनुभव में, अगर रिमोट पर खदान के आगे कोई काम करता है, तो यह एक मर्ज कमिटमेंट बनाएगा, तब भी जब यह रिबेज कर सकता है।
जेरद रोज

@JeradRose जब मैंने अपनी टिप्पणी लिखी थी तो हम Github Desktop v। 2.x पर थे, और हम अभी 3.3 पर हैं :-) लेकिन आप सही हैं, मैंने उसी पर ध्यान दिया है।
जोरिस मेय्स

17

"सिंक" आपके स्थानीय शाखा को आपकी दूरस्थ शाखा से मेल खाने के लिए आवश्यक कोई भी कार्रवाई होगी। यदि आपकी स्थानीय शाखा ने यह माना है कि आपकी दूरस्थ शाखा नहीं है, तो "सिंक" आपकी शाखा को आगे बढ़ाएगा। यदि दूरस्थ शाखा आपकी स्थानीय शाखा से आगे थी, तो "सिंक" पहले खींचेगा (विशेषकर git pull --rebase, जैसा कि फिल हैक द्वारा समझाया गया था )। "सिंक" स्थानीय और दूरस्थ को एक दूसरे को दर्पण करने के लिए एक शॉर्टकट है।

से GitHub साइट :

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.


यह सिर्फ खींचता नहीं है - यह "गिट पुल --ब्रेबेस" करता है, जो एक महत्वपूर्ण अंतर है। इसके अलावा, आपके पास जो आदेश गलत है, उसे पुश करने से पहले खींच लें।
एंडीह

2
@Andiih मेरी भाषा सामान्यीकृत थी और संचालन की आदेशित सूची नहीं थी। आदेश में निहित था - नोटिस मैं कहता हूं "अगर दूरस्थ शाखा आपकी स्थानीय शाखा से आगे थी "? मेरा वर्णन भी GitHub साइट से एक प्रत्यक्ष उद्धरण था। भले ही, मैट रिक्स का उत्तर अधिक विस्तृत हो, और उत्तर के रूप में चिह्नित होने के योग्य हो। मैंने अपने उत्तर में किसी भी भ्रम को स्पष्ट करने के लिए कुछ छोटे संपादन किए हैं।
redhotvengeance

क्या जीथब सिंक मूल के अलावा, अपस्ट्रीम परिवर्तन भी लाता है। Ie मैंने एक रेपो को f9rked किया, और कांटे का एक स्थानीय क्लोन है, जो मैं वास्तव में चाहता हूं वह है अपस्ट्रीम से बदलाव, न कि केवल उत्पत्ति
आरोनॉल्स

1
Windows के लिए @AaronLS GitHub केवल एक रिमोट के साथ काम करने के लिए बनाया गया है, अर्थात् origin। कई रीमेक के साथ काम करने के लिए, आपको कमांड लाइन का उपयोग करना होगा। प्रासंगिक जानकारी यहां पाई जा सकती है , "मल्टीपल गेट रिमूव्स और नॉन-गिटहब रिमॉड्स" के तहत।
Redhotvengeance

4

@ एथान्यांग के उत्तर में जोड़ने के लिए ,

गिटकोफिग में कॉन्फ़िगर किए गए उपनाम के अनुसार,

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

4
बस जिज्ञासा से बाहर, क्या करता है! उपरोक्त लाइन में क्या मतलब है?
स्कॉट रोमैक

@ScottRomack का मतलब है कि इसे एक शेल कमांड के रूप में माना जाता है: stackoverflow.com/questions/21083933/…
निकोलस

क्या GitHub डेस्कटॉप में यह उपनाम पहले से सेटअप है? यदि हां, तो यह कॉन्‍फ़िगर कहां स्थित है? मैंने अपने वैश्विक में इस उपनाम को नहीं देखा .gitconfig। या यह सिर्फ अपने खुद का एक ओवरराइड है?
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.