2010-02-09 9 views
5

मैं गिट दुनिया में नौसिखिया हूं, मैं पूछना चाहता हूं कि मेरी वर्कफ़्लो समस्या को कैसे हल किया जाए, मूल रूप से मेरे पास 2 कंप्यूटर, एक कार्यालय में और एक घर में है, और मेरे पास भी है vps मेरे गिट साझा भंडार के रूप में काम कर रहा है। जब मैं कार्यालय में काम करता हूं, तो मेरे पास अधूरा कोड है, और मैं घर पर अपना काम जारी रखना चाहता हूं, इसलिए आमतौर पर मैं पहले कार्यालय में प्रतिबद्ध रहूंगा और अपना काम गिट साझा भंडार में डाल दूंगा, और उसके बाद मैं घर वापस खींचूंगा और इसे जारी रखेंगिट - कमिट के बिना काम को सुरक्षित रखें

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

+6

इसे साझा रेपो में धक्का न दें और सीधे अपने कार्य रेपो से खींचें; विकल्प दो, अपना खुद का 'केंद्रीय' डिपो स्थापित करें, या तीसरा विकल्प एक शाखा का काम करें। जो भी आपको अधिक प्राकृतिक लगता है, लेकिन आपको अभी भी इसे प्रतिबद्ध करना है। – falstro

उत्तर

11

अपनी सभी शाखाओं को अपनी शाखा में करें, अपने सहकर्मी को उस शाखा से नहीं खींचने दें। यदि आपके पास बहुत से डेवलपर हैं, तो यह गन्दा हो सकता है, लेकिन केवल दो लोगों के साथ यह कोई समस्या नहीं होनी चाहिए।

+0

आपकी अपनी शाखा में काम करने से आपको रीसेट/रीबेज/डिलीट करने की अनुमति मिलती है-जो भी आप करना चाहते हैं – knittl

+0

इससे कोई फर्क नहीं पड़ता। आपको जो प्रतिबद्धता आपने धक्का दिया है उसे कभी भी रीसेट/रीबेस/हटा नहीं देना चाहिए, भले ही आप सुनिश्चित हों कि आप इसका उपयोग कर रहे हैं। यदि आपने धक्का नहीं दिया है, तो आप बिना किसी परेशानी के किसी और की शाखाओं को स्वतंत्र रूप से रीबेस कर सकते हैं। – kubi

0

कुबी ने कहा, एक निजी शाखा का उपयोग करें। आप बिल्कुल भंडार में टूटा कोड पुश करने के लिए नहीं करना चाहते हैं, तो आप अपने आप को, एक पैच (उपयोग git format-patch) के रूप में परिवर्तन ईमेल कर सकते हैं वहाँ से घर और काम पर इसे लागू (git apply के साथ)

भी याद रखें कि आप git commit --amend का उपयोग उचित "आधा बेक्ड" प्रतिबद्धता को ओवरराइट करने के लिए कर सकते हैं, जिसे साझा रेपो में धक्का दिया जाता है।

2

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

उदाहरण:

मास्टर शाखा: सभी द्वारा परीक्षण किया गया। डब्ल्यूआईपी शाखा: प्रगति शाखा में आम काम, शाखा हर कोई कोड का उपयोग कर सकती है, और इसका परीक्षण कर सकती है। डब्ल्यूआईपी-ब्राइट: मेरी अपनी शाखा डब्ल्यूआईपी-कोई: किसी और की शाखा।

इस git cheatsheet का उपयोग करके गिट के साथ काम करना बहुत आसान है।

0

यदि आप नेटवर्क और रिपॉजिटरीज सेट नहीं कर सकते हैं ताकि आप काम से खींच सकें और काम पर धक्का दे सकें (देखें कि मैं उस होस्ट से सिंक करने के लिए "गिट पुश" का उपयोग कैसे करूं? 'GitFaq गिट विकी पर पृष्ठ), और न ही आप अपने स्वयं के नंगे' प्रकाशन 'भंडार को आपके द्वारा काम और घर के बीच बढ़ने के लिए उपयोग कर सकते हैं, git bundle पर एक नज़र डालें, जो ऑफ़लाइन (स्नीकरनेट) परिवहन के लिए है।

यह आपके प्रश्न का सीधा जवाब नहीं हो सकता है, लेकिन मुझे उम्मीद है कि इससे मदद मिलेगी।

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