मैं रिमोट में एक स्थानीय गिट शाखा को मास्टर शाखा में कैसे धकेलूं?


468

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

मैं यह कैसे कर सकता हूँ?


क्या कोई विशेष कारण है कि आप इसे स्थानीय रूप से मर्ज नहीं करना चाहते हैं originऔर फिर इसे रिमोट पर धकेल दें?
bhamby

मुझे लगता है कि @galador का अर्थ है स्थानीय स्तर पर विलय master- लेकिन यह एक मान्य बिंदु है। यदि यह मूल की मास्टर शाखा के लिए पर्याप्त स्थिर है, तो निश्चित रूप से यह आपके मास्टर शाखा के लिए पर्याप्त स्थिर है!
Cascabel

1
@Jefromi हाँ, वूप्स, टाइपो। -_-
bhamby

2
@ जेफ्रोमी की कल्पना है कि आप अपने स्थानीय मास्टर की किसी चीज पर काम कर रहे थे और आपने कुछ ऐसे काम किए जो अब तक धकेलने के लिए तैयार नहीं हैं। फिर यह पता चला कि आपके पास जरूरी काम है। आप दूरस्थ मास्टर से एक स्थानीय शाखा बनाते हैं, काम करते हैं और अपने परिवर्तनों को वापस मास्टर में धकेलते हैं। शायद यह सबसे अच्छा तरीका नहीं है, लेकिन यही मेरे साथ हुआ और मैंने जो किया, वही किया। यह इरादा के अनुसार निर्दोष रूप से काम किया। ठीक है, मुझे पहली बार अलग-अलग स्थानीय शाखा में काम करना चाहिए था, लेकिन हर समय शाखा में दर्द होता है और बहुत देर हो चुकी होती है।
पिंकीन

21
मैं हेरोकू पर एक गैर-सार्वजनिक-परीक्षण परीक्षण ऐप के लिए एक विकास शाखा को आगे बढ़ा रहा हूं, यह देखने के लिए कि हेरोकू के वातावरण में चीजें कैसे काम करती हैं। निश्चित रूप से मेरे कोड को मर्ज नहीं करना चाहता है master, लेकिन जब तक यह masterऐप के भीतर नहीं होता तब तक हरोकू कोड नहीं चलाएगा । यह वैध उपयोग के मामलों के साथ एक पूरी तरह से उचित अनुरोध है!
जैकबवेलिन

जवाबों:


813
$ git push origin develop:master

या, अधिक आम तौर पर

$ git push <remote> <local branch name>:<remote branch to push into>

24
"Git पुश ओरिजिन: मास्टर" न करें जो आपकी मौजूदा शाखा को दूरस्थ रूप से हटा सकता है
Mangirdas Skripka

48
सच @MangirdasSkripka! बस उपयोग करें git push origin head:masterयदि आप वर्तमान शाखा का नाम निर्दिष्ट नहीं करना चाहते हैं :)
फ्रांसेक रोज़ास

23
अच्छा विचार @ FrancescRosàs, यह HEAD (बड़े अक्षर) है।
स्मोकू

@ मीपाड़ी अगर मेरे पास अनुमति की अनुमति है, तो क्या मैं इसे स्थानांतरित कर सकता हूं
नीरज शर्मा

11
@ नीरजशर्मा: मुझे नहीं पता कि ऋणदाता की अनुमति क्या है, या आप क्या स्थानांतरित करना चाहते हैं।
मियादी

194

जैसा कि लोगों ने टिप्पणियों में उल्लेख किया है कि आप शायद ऐसा नहीं करना चाहते हैं ... यदि आप जानते हैं कि आप क्या कर रहे हैं, तो मिपदी का उत्तर बिल्कुल सही है।

में कहना चाहूंगा:

git checkout master
git pull               # to update the state to the latest remote master state
git merge develop      # to bring changes to local master from your develop branch
git push origin master # push current HEAD to remote master branch

 


23
बस उल्लेख करने के लिए, उनके अनुरोध में कुछ समझ है, मैं उस मामले का उपयोग
हर्को

5
फिर, यह तकनीक केवल उन्नत git उपयोगकर्ताओं के लिए IMHO है। ऐसा नहीं है कि यह बहुत कठिन है, बस लोगों को यह समझने की आवश्यकता है कि वे क्या कर रहे हैं और यह काम करने के तरीके पर काम क्यों कर रहा है। हर कोई अपनी पसंद के हिसाब से git का उपयोग करने के लिए स्वतंत्र है, लेकिन मुझे लगता है कि मेरे द्वारा सुझाए गए दृष्टिकोण का पालन करना शैक्षिक उद्देश्यों के लिए बहुत बेहतर है, विशेष रूप से नए लोगों के लिए। स्वच्छ "विषय शाखाएं" शुरू करने का तरीका है, आप बाद में यदि आवश्यक हो तो अपने वर्कफ़्लो को अनुकूलित कर सकते हैं।
यूजीन सजाइन

1
यह वास्तव में एक काफी सामान्य बात है। मास्टर शाखा आमतौर पर आपकी तैनाती शाखा होती है। यदि दो टीमों ने जानबूझकर अपनी तैनाती को रद्द कर दिया है, तो संभावना है कि आप पैच-अप लोकल को पुश करने के लिए चेरी से चुने गए स्थानीय शाखा का उपयोग करने जा रहे हैं। अब आप यह तर्क दे सकते हैं कि परिवर्तनों को एक शाखा में ऊपर की ओर धकेल दिया जाना चाहिए और फिर वहां से मास्टर में विलय कर दिया जाना चाहिए, लेकिन यह निश्चित रूप से इसे दूसरे तरीके से करने के लिए अजीब नहीं है, आईएमओ।
dgatwood

+1 यह एक प्रोडक्शन रिलीज़ को "बिल्ड" करने का सबसे तार्किक तरीका है।
रयान

यदि आप विकास के साथ विलय नहीं करना चाहते हैं, लेकिन मास्टर के लिए बगावत विकसित कर चुके हैं तो आप इसे कैसे करेंगे?
user239558

-1

@ यूजीन के जवाब के विस्तार के रूप में एक और संस्करण जो स्थानीय रेपो से मास्टर / शाखा विकसित करने के लिए कोड को आगे बढ़ाने का काम करेगा।

शाखा 'मास्टर' पर जाएं:

$ git checkout master

स्थानीय रेपो से मास्टर में विलय करें:

$ git merge --no-ff FEATURE/<branch_Name>

गुरु को धक्का दें:

$ git push

-1

मास्टर शाखा में स्थानीय रेपो को आगे बढ़ाने के लिए नीचे दिए गए चरणों का पालन करेंenter code here

$ गिट स्थिति

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