2011-08-16 26 views
35

मेरे पास 2 गीट शाखाएं हैं: मास्टर और प्रयोगात्मक।दूरस्थ गिट शाखा का नामकरण

प्रायोगिक अच्छा बन गया, मैं इसे मास्टर बनाना चाहता हूं। मैं सोचा मैं चीजों को चारों ओर से शफ़ल करने के लिए नाम बदलने होगा, लेकिन यहाँ मैं क्या मिला है:

nutebook:Stuff nathan$ git remote rename master old 
error: Could not rename config section 'remote.master' to 'remote.old' 

मैं GitHub और Git-टॉवर का उपयोग करें।

उत्तर

56

निम्नलिखित अपनी मास्टर शाखा का नाम बदलने के लिए एक गाइड है। यह आपकी प्रयोगात्मक शाखा का नाम बदलने के लिए आसानी से काम करेगा।

यहां बताया गया है कि मैंने नामकरण कैसे किया।

सबसे पहले, अपने काम करने वाले पेड़ में, स्थानीय रूप से कुछ के लिए मास्टर का नाम बदलें।

git branch -m master old-dev 

एक शाखा का नाम बदल रहा काम करता है, जबकि आप शाखा पर हैं, इसलिए कुछ और चेकआउट करने के लिए कोई आवश्यकता नहीं है।

फिर, स्थानीय स्तर पर गुरु के रखरखाव शाखा (2.63 शाखा) का नाम बदलने:

git branch -m 2.63-branch master 

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

git push origin :master 

और अब, दूरदराज के अपने नए मास्टर दे:

git push origin master:refs/heads/master 

अद्यतन: जब एक नई शाखा का निर्माण, refs/सिर/उपसर्ग है पर जरूरत रिमोट साइड। यदि शाखा पहले से मौजूद है (जैसा मास्टर ने ऊपर किया है) केवल दूरस्थ नाम पर शाखा का नाम आवश्यक है।

... और अपने अब नाम बदलकर पुराने मास्टर:

git push origin old-dev:refs/heads/old-dev 

अंत में, भ्रम रोकने के लिए अपने रखरखाव शाखा के पुराने नाम को हटा दें:

git push origin :2.63-branch 

ग्राहक अब मिल जाएगा ' जब वे खींचते हैं तो नई 'मास्टर शाखा।

this साइट देखें।

+7

इसमें जोड़ने के लिए: जब मैं जिथब पर अपने 'मास्टर' का नाम बदलना चाहता था, तो मुझे पहले इसे 'सेटिंग्स' के तहत डिफ़ॉल्ट शाखा को बदलना पड़ता था इससे पहले कि इससे मुझे इसे हटा दिया जाए (यानी 'गिट पुश मूल: मास्टर')। –

+0

क्या आप स्थानीय रूप से शाखा का नाम बदल सकते हैं और इसे दूरस्थ पर धक्का दे सकते हैं और फिर पुराने को हटा सकते हैं? –

+1

मुझे लगता है कि पुश करने के लिए फ्लू अच्छा है क्योंकि यह आपके लिए नए रिमोट अप की अपस्ट्रीम ट्रैकिंग सेट करता है, उदा। 'गिट पुश -यू मूल मास्टर' (गिट 1.7 का उपयोग करके मुझे पूर्ण रेफरी/हेड उपसर्ग की आवश्यकता नहीं थी) –

1

master एक शाखा है, origin जैसी रिमोट नहीं है। अगर आप अपने गुरु शाखा करने के लिए अपने प्रयोगात्मक कार्य करना चाहते हैं, बस इसे विलय:

git checkout master 
git merge experimental 
0

आप करने की कोशिश की क्या था "मास्टर" से एक दूरस्थ रेपो नाम बदलने के लिए "पुराने"। किसी अन्य रेपो पर किसी शाखा का नाम बदलने के लिए, इसे

git push <remote> :<branch name> 

के साथ हटाएं और फिर इसे किसी और के रूप में दबाएं।

4

मुझे लगता है कि प्रयोगात्मक शाखा की जांच करना सबसे आसान तरीका है, दूरस्थ मास्टर शाखा को हटाएं, फिर स्थानीय प्रयोगात्मक को नए रिमोट मास्टर के रूप में दबाएं।

// delete the remote master branch by pushing null 
// (the space in front of the semicolon) in this branch 
git push origin :master 
// push local experimental to remote master 
git push origin experimental:master 
1

यदि आप Mac उपयोग कर रहे हैं, तो आप शाखाओं नाम बदलने के लिए GitHub Mac App (https://mac.github.com/) का उपयोग कर सकते हैं।

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