गिटहब तक एक स्थानीय शाखा को धक्का देना


117

मैंने Git कॉन्फ़िगर किया है ताकि जब मैं चलाऊं git push, तो यह मेरे GitHub रेपो में परिवर्तन को धक्का दे। अब तक मेरे पास केवल एक मास्टर शाखा थी।

हालाँकि, मैंने अब एक स्थानीय शाखा बनाई है और इसका उपयोग करने के लिए प्रतिबद्ध है:

git checkout -b my_new_branch
git commit

अब मैं क्या करना चाहूंगा कि इस शाखा पर अपने परिवर्तन को GitHub में धकेल दिया जाए। क्या मैं सिर्फ एक धक्का दे सकता हूं?

जब मैंने पहली बार इसे सेट किया तो मैंने दौड़ लगाई:

git config push.default current

आपका सवाल क्या है? push.defaultइस तरह सेट के साथ , हाँ, git pushवर्तमान शाखा को मूल में धकेल देगा, जो कि आपके गिथब रेपो है, यह मानते हुए कि आप वहां से क्लोन किए गए हैं। ( branch.my_new_branch.remoteयदि आप चाहते थे तो आप एक अलग रिमोट निर्दिष्ट कर सकते थे।) तो क्या आपने यह कोशिश की और यह काम नहीं किया?
कैस्केबेल

1
यदि आप चाहते हैं कि आपकी सभी स्थानीय शाखाएँ एक ही दूरस्थ शाखा में धकेलें, तो स्पष्ट रहें: git push origin HEAD: Remote_branch
Ustaman Sangat

जवाबों:


221

मेरा मानना ​​है कि आप ढूंढ रहे हैं git push origin my_new_branch, मान लें कि आपके मूल रिमोट को आपके गिटब रिपॉजिटरी को हिट करने के लिए कॉन्फ़िगर किया गया है।



3
यदि आप अन्य लोगों के साथ इस शाखा पर काम करना चाहते हैं और इसलिए आप अपनी नई शाखा के लिए ट्रैकिंग जानकारी सेट करना चाहेंगे: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia

9

आपकी स्थानीय git सेटिंग्स के आधार पर, यदि आपके पास एक शाखा है जो यह जांचती है कि आपने जो क्लोन किया है या वह मौजूद नहीं है, जहां आप धक्का देने की कोशिश कर रहे हैं, तो git आपकी स्थानीय शाखा को धक्का नहीं देगा।

यहां यह संदेश दिया गया है:

चेतावनी: push.default परेशान है; इसका निहितार्थ Git 2.0 में 'मिलान' से बदलकर 'सरल' हो गया है। इस संदेश को हटाने और पारंपरिक व्यवहार को बनाए रखने के लिए, उपयोग करें:

git config --global push.default मिलान

इस संदेश को समाप्त करने और अब नए व्यवहार को अपनाने के लिए, उपयोग करें:

git config --global push.default simple

जब push.default को 'मिलान' के लिए सेट किया जाता है, तो git स्थानीय शाखाओं को उन दूरस्थ शाखाओं पर धकेल देगा जो पहले से ही समान नाम के साथ मौजूद हैं।

Git 2.0 के बाद से, Git अधिक रूढ़िवादी 'सरल' व्यवहार को परिभाषित करता है, जो वर्तमान शाखा को संबंधित दूरस्थ शाखा में धकेलता है जो 'git pull' का उपयोग कर वर्तमान शाखा को अद्यतन करता है।

'Git help config' देखें और आगे की जानकारी के लिए 'push.default' खोजें। ('सरल' मोड को Git 1.7.11 में पेश किया गया था। यदि आप कभी-कभी Git के पुराने संस्करणों का उपयोग करते हैं, तो 'सरल' के बजाय समान मोड 'current' का उपयोग करें)

घातक: वर्तमान शाखा MyLocalBranchमें कोई अपस्ट्रीम शाखा नहीं है। वर्तमान शाखा को पुश करने के लिए और रिमोट को अपस्ट्रीम के रूप में सेट करें, उपयोग करें

git push --set-upstream origin MyLocalBranch

0

यदि आप वास्तव में आलसी हैं, तो आप केवल उपयोग करके सभी स्थानीय शाखाओं को आगे बढ़ा सकते हैं

git push --all

--सब

सभी शाखाओं को पुश करें (यानी के तहत refs refs/heads/); अन्य के साथ प्रयोग नहीं किया जा सकता है <refspec>


-12

यदि आपने अपने गिटहब मास्टर रेपो को धक्का देने के लिए अपने गिट को कॉन्फ़िगर किया है, तो आप जिस शाखा में हैं, उसके साथ कोई फर्क नहीं पड़ता, यह आपके गिटहब मास्टर रेपो को धक्का देगा।

ध्यान रखें कि, यदि कई डेवलपर्स एक ही रिपॉजिटरी में काम कर रहे हैं, तो आपको एक संघर्ष मिल सकता है।


मैंने git config push.default current
Noam
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.