Git में HEAD
और master
में क्या अंतर है ?
मैंने GitHub पर एक परियोजना का एक क्लोन किया और अपने परिवर्तनों को रिमोट पर धकेलना चाहता हूं। लेकिन मुझे किस पर धक्का देना चाहिए?
Git में HEAD
और master
में क्या अंतर है ?
मैंने GitHub पर एक परियोजना का एक क्लोन किया और अपने परिवर्तनों को रिमोट पर धकेलना चाहता हूं। लेकिन मुझे किस पर धक्का देना चाहिए?
जवाबों:
master
एक शाखा के अंत के लिए एक संदर्भ है। सम्मेलन (और डिफ़ॉल्ट रूप से) यह आमतौर पर मुख्य एकीकरण शाखा है, लेकिन यह होना जरूरी नहीं है।
HEAD
वास्तव में एक विशेष प्रकार का संदर्भ है जो दूसरे संदर्भ को इंगित करता है। यह इंगित कर सकता है master
या यह नहीं हो सकता है (यह वर्तमान में जाँच की जाने वाली शाखा को इंगित करेगा)। यदि आप जानते हैं कि आप master
शाखा के लिए प्रतिबद्ध होना चाहते हैं तो इसे आगे बढ़ाएँ।
यहाँ एक दृश्य उदाहरण है:
अपने स्वयं के भंडार पर आप यह जाँच कर सकते हैं कि HEAD
इसे चलाने का संकेत कहां है:
$ git symbolic-ref HEAD
refs/heads/master
हालाँकि, यह पता लगाना कि कहाँ remotes/origin/HEAD
इशारा करना अधिक मुश्किल है क्योंकि यह रिमोट मशीन पर है।
यहाँ संदर्भ संदर्भ पर एक महान ट्यूटोरियल है:
http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1
इसका सरल उत्तर यह है कि HEAD
जिस शाखा में आप वर्तमान में हैं, उसकी सबसे हालिया कमेंटरी के लिए एक पॉइंटर / लेबल है। master
जब आपने गिट रिपॉजिटरी (उदा git init
) को इनिशियलाइज़ किया तो डिफ़ॉल्ट ब्रांच बनाई गई है ।
आप master
शाखा को हटा सकते हैं (जैसे git branch -D master
)। आप HEAD
सूचक को हटा नहीं सकते ।
HEAD
वर्तमान में आप जिस शाखा में हैं उसकी सबसे हाल की कमेटी के लिए एक पॉइंटर / लेबल है।" मुझे लगता है कि यह सबसे अच्छा भ्रामक है। यदि आप एक पुरानी कमिटमेंट की जांच करते हैं, तो HEAD अब उस पुरानी कमेटी की ओर इशारा करता है, न कि सबसे हाल की कमिटमेंट के लिए। सही?
checkout
कमांड अन्य सामान्य एससीएम सिस्टम में शाखाओं को स्विच करने के बराबर है।
HEAD
वास्तव में समझती है कि गिट पॉइंटर क्या है। मैं आपकी टिप्पणी की सराहना करता हूं और सोचता हूं कि दूसरे भी करेंगे। आपकी अनुवर्ती टिप्पणी के साथ मेरी मूल पोस्ट की सामग्री एक दूसरे के पूरक हैं। धन्यवाद।
बस अपनी वर्तमान शाखा के बदलावों को आगे बढ़ाएं
git push origin
और यह आपकी शाखा को ' B
' परिवर्तन ' ' में धकेल देगा origin/B
।
यदि आप अपनी master
शाखा पर हैं, तो git धक्का देगा origin/master
।
वास्तव में यह उन स्थानीय शाखाओं पर सभी बदलावों को आगे बढ़ाएगा जिनकी मिलान योग्य दूरस्थ शाखाएँ हैं origin
। यह विन्यास सेटिंग push.default द्वारा नियंत्रित किया जाता है । प्रो Git पुस्तक में RefSpecs को आगे बढ़ाते हुए
भी देखें ।
आप जो देख रहे हैं, वह साइडबार है जो GitX प्रोजेक्ट के एक्सपेरिमेंटल GITX फोर्क में आपके रिमोट रेपो के सभी रिफस्पेक्ट्स का प्रतिनिधित्व करता है ।
HEAD
कि दूरदराज के लिए डिफ़ॉल्ट शाखा नामित करेंगे। मैन पेज
देखें :git remote set-head
किसी दूरस्थ शाखा के लिए डिफ़ॉल्ट शाखा की आवश्यकता नहीं होती है, लेकिन किसी विशिष्ट शाखा के बदले रिमोट के नाम को निर्दिष्ट करने की अनुमति देता है।
उदाहरण के लिए, यदि डिफ़ॉल्ट शाखा के लिएorigin
सेट किया गया हैmaster
, तोorigin
आप जहां भी सामान्य रूप से निर्दिष्ट करेंगे निर्दिष्ट किया जा सकता हैorigin/master
।