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।