2010-01-27 26 views
19

जब मैंने अपनी बाहरी डिस्क पर रिमोट रिपोजिटरी में 'गिट पुश मूल मास्टर' की कोशिश की, तो गिट चेतावनी ने यह बताते हुए कहा कि चेकआउट रिपोजिटरी को प्यूज़ करना डिफ़ॉल्ट रूप से अस्वीकार किए गए गिट की अगली रिलीज में होगा। बाहरी डिस्क पर मैंने चेकआउट प्रोजेक्ट किया है और मैं अपने कंप्यूटर पर इन रिपोजिट्री में किए गए परिवर्तन भेजना चाहता हूं। क्या 'गिट पुश मूल मास्टर' सही तरीका नहीं है? क्या मुझे अपनी बाहरी डिस्क पर भंडार पर 'गिट पुल ...' करना है? तो मैं परिवर्तनों को धक्का नहीं दे सकता लेकिन उन्हें खींच सकता हूं? केवल 'नंगे' भंडार के साथ काम करना अलग है? तो अगर मेरी बाहरी डिस्क पर भंडार एक नंगे भंडार था तो मैं इसमें बदलाव को धक्का दे सकता था? क्या मैं समझ में आता हूँ?केवल नंगे भंडार के लिए गिट पुश?

उत्तर

6

आपको गैर-नंगे भंडार को धक्का नहीं देना चाहिए क्योंकि धक्का केवल रेपो की आंतरिक स्थिति को अपडेट करेगा, और फ़ाइलों की चेक-आउट, डिस्क प्रतियों को प्रभावित नहीं करेगा। इस प्रकार, यदि आप रेपो में फ़ाइलों की स्थिति की ऑन-डिस्क प्रतियों को पहली बार अपडेट किए बिना (रेपो में git checkout) के बिना उस रेपो में काम करना शुरू करते हैं तो आप समस्याओं में भाग ले सकते हैं।

+0

तो, रिपो को दबाएं रेपो से बिल्कुल खींच नहीं है? –

+3

बननेगुरु: सही; एक धक्का प्रभावी ढंग से एक fetch के विपरीत है। खींचें = लाने + वर्तमान शाखा में विलय करें। – ebneter

+2

कुंजी यह है कि एक पुल काम करने वाले पेड़ ("ऑन-डिस्क" फ़ाइलों) में फ़ाइलों को भी अद्यतन करता है, जो न तो एक धक्का और न ही एक fetch करता है। – mipadi

23

चेतावनी सावधानी से पढ़ें। नया डिफ़ॉल्ट निषेध केवल गैर-नंगे भंडार में वर्तमान में चेक आउट की गई शाखा को धक्का दे रहा है। गैर-नंगे भंडार में किसी भी अन्य शाखा को धक्का देना बिल्कुल ठीक है।

इसका कारण यह है कि पुश प्रक्रिया के कामकाजी पेड़ तक कोई सीधी पहुंच नहीं है, इसलिए सूचकांक और शाखा के सिर कामकाजी पेड़ के नीचे बदल जाते हैं। जब आप बाद में काम करने वाले पेड़ पर जाते हैं तो ऐसा लगता है कि काम करने वाले पेड़ ने विकास में वास्तव में किए गए किसी भी बदलाव के साथ मिश्रित परिवर्तनों को पूर्ववत कर दिया है। इससे बदलावों के दो सेट अलग करना बहुत मुश्किल हो जाता है।

अन्य शाखाओं में धक्का देने के लिए ऐसी कोई डाउनसाइड्स नहीं है। फिर आप उस भंडार पर जा सकते हैं और इच्छित होने पर चेक किए गए शाखा में उन परिवर्तनों को मर्ज कर सकते हैं।

+3

मुझे तब तक यह जवाब नहीं समझा जब तक कि मैंने पढ़ा [गिट तैयार »केवल नंगे भंडारों को धक्का दें] (http://gitready.com/advanced/2009/02/01/push-to-only-bare-repositories.html) और [सभी "बेयर" रिपोज़ के बारे में - क्या, क्यों, और कैसे एक गैर-नंगे धक्का को ठीक करने के लिए] (http://sitaramc.github.com/concepts/bare.html) (विशेष रूप से "हाँ हाँ, लेकिन क्यों क्या मुझे एक नंगे रेपो चाहिए? "सेक्शन)। अब, हालांकि, मैं करता हूँ! –

+0

क्या हमारे पास चेक आउट शाखा में धक्का देने की क्षमता नहीं है और फिर शाखा के साथ पोस्ट-प्राप्त हुक मर्ज मूल बर्नच का उपयोग करके अपडेट किया गया था? –

संबंधित मुद्दे