सवाल मैं स्थानीय गिट शाखा का नाम कैसे बदलूं?


जैसा कि वर्णन किया गया है, मैं एक दूरस्थ शाखा का नाम बदलना नहीं चाहता हूं स्थानीय और दूरस्थ गिट भंडार दोनों के लिए मास्टर शाखा का नाम बदलें

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


6714
2017-07-06 03:20


मूल




जवाब:


यदि आप किसी शाखा की ओर इशारा करते हुए शाखा का नाम बदलना चाहते हैं, तो करें:

git branch -m <oldname> <newname>

यदि आप वर्तमान शाखा का नाम बदलना चाहते हैं, तो आप यह कर सकते हैं:

git branch -m <newname>

यह याद रखने का एक तरीका है, है -m "चाल" के लिए है (या mv), यह है कि आप फ़ाइलों का नाम कैसे बदलते हैं।


10700
2017-07-06 03:21



मैं वास्तव में जानना चाहता था कि क्या यह आपके द्वारा धक्का देने पर रिमोट शाखा को जरूरी रूप से प्रभावित करेगा - PandaWood
@ पांडावुड: जब आप धक्का देते हैं तो यह नई शाखा जोड़ देगा, लेकिन पुरानी शाखा को हटा नहीं देगा। यदि तुम प्रयोग करते हो git push -f --mirror, तो यह रिमोट पर शाखा का नाम बदल देगा, लेकिन आपको केवल इस विधि का उपयोग करना चाहिए यदि रिमोट बस आपके वर्तमान भंडार की प्रतिलिपि है। यह प्रश्न भी देखें: stackoverflow.com/questions/1526794/git-rename-remote-branch - siride
@ पांडावुड, यह इस पर निर्भर करता है कि कैसे push.default कॉन्फ़िगर किया गया है। डिफ़ॉल्ट रूप से (matching) यह एक रिमोट को धक्का देगा जिसका नाम मेल खाता है। आपको करना होगा git push origin <newname>:<oldname> या आप एक नई रिमोट शाखा बनायेंगे। हालांकि, यदि push.default इस पर लगा है upstream, तब आप कर सकते हो push origin head और चीजें रिमोट पर पुराने नाम पर जाएंगी। - Erin Stanfill
@ NightOwl888: -m शायद उपयोग करने के यूनिक्स सम्मेलन के बाद, "चाल" के लिए छोटा है mv फ़ाइलों का नाम बदलने के लिए। इसका कारण यह है कि निर्देशिका-आधारित इनोड फ़ाइल सिस्टम में चलती और नामकरण पूरी तरह से समकक्ष है। - siride
का लंबा नाम -m विकल्प है --move, उदाहरण के लिए, git branch --move master वर्तमान शाखा का नाम "मास्टर" कहलाता है। - robenk


git branch -m old_branch_name new_branch_name

उपर्युक्त आदेश आपकी शाखा का नाम बदल देगा, लेकिन आपको नामित शाखा का उपयोग करके बहुत सावधान रहना होगा, क्योंकि यह अभी भी पुरानी अपस्ट्रीम शाखा से संबंधित होगा, यदि कोई हो।

यदि आप अपनी स्थानीय शाखा का नाम बदलकर new_branch_name (उदाहरण नाम) में बदल दिया है, तो आप मास्टर में कुछ बदलावों को धक्का देना चाहते हैं:

git push origin new_branch_name:master (अब परिवर्तन मास्टर शाखा में जाएंगे लेकिन आपकी स्थानीय शाखा का नाम new_branch_name है)

अधिक जानकारी के लिए, देखें "गिट में अपने स्थानीय शाखा नाम का नाम कैसे बदलें। "


351
2018-01-21 09:49





अपनी वर्तमान शाखा का नाम बदलने के लिए:

git branch -m <newname>

247
2018-06-20 15:05



यदि आप केवल पूंजीकरण बदल रहे हैं, तो आपको नाम बदलने के लिए -M का उपयोग करना होगा, क्योंकि गिट आपको बताएगा कि शाखा पहले से मौजूद है। - cjspurgeon
आपने मुझे इस टिप्पणी के साथ बचाया। - jpadilladev
@cjspurgeon गिट एक अप्रत्याशित हद तक, इतनी सहज ज्ञान से मुझे अद्भुत पर रखता है। कितने सालों से। - 0xc0de


शाखा का नाम बदलने के लिए यहां दिए गए कदम हैं:

1. switch to branch which needs to be renamed
2. git branch -m <new_name>
3. git push origin :<old_name>
4. git push origin <new_name>:refs/heads/<new_name>

संपादित करें (12/01/2017): सुनिश्चित करें कि आप कमांड चलाते हैं git status और जांचें कि नव निर्मित शाखा अपने स्वयं के रेफरी को इंगित कर रही है और पुरानी नहीं है। यदि आपको पुरानी शाखा का संदर्भ मिलता है, तो आपको अपस्ट्रीम का उपयोग करके अनसेट करना होगा:

git branch --unset-upstream

186
2018-04-15 12:50



कौन सा कदम अपस्ट्रीम को अनसेट करेगा? चरण 4 से पहले? - Cyclonecode
@ चक्रवात कोड: हाँ। चरण 4 के बाद। लेकिन सुनिश्चित करें कि आप गिट स्थिति चलाते हैं ताकि यह जांच सके कि क्या इसकी पुरानी शाखा का संदर्भ है या नहीं। - Milind Anantwar


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

मेरे अनुभव से, गिट में स्थानीय और दूरस्थ शाखा का नाम बदलने के लिए आपको निम्न चरणों का पालन करना चाहिए।

से उद्धरण एकाधिक राज्य - एक स्थानीय और दूरस्थ शाखा का नाम बदलें   Git

1. अपनी स्थानीय शाखा का नाम बदलें

यदि आप उस शाखा में हैं जिसका आप नाम बदलना चाहते हैं:

git branch -m new-name

यदि आप एक अलग शाखा पर हैं:

git branch -m old-name new-name

2. पुरानी नाम रिमोट शाखा हटाएं और नई नाम स्थानीय शाखा को दबाएं

git push origin :old-name new-name

3. अपस्ट्रीम शाखा को नए नाम की स्थानीय शाखा के लिए रीसेट करें

git push origin -u new-name

124
2017-10-14 03:22



यह वाला मेरे लिए बेहतर काम किया। यहां 2 चरणों ने मुझे निम्नलिखित त्रुटियां दीं: error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git' - Anto
आदेश चलाते समय आपको समस्या मिली git push origin :old-name new-name सही? - trungk18
हां बिल्कुल (माफ करना मेरा मतलब था "दूसरा कदम", "2 कदम" नहीं - थका हुआ) - Anto


अब तक के जवाब सही हैं लेकिन यहां कुछ अतिरिक्त जानकारी दी गई है: कोई '-एम' (चाल) के साथ एक शाखा का नाम बदल सकता है, लेकिन किसी को सावधान रहना पड़ता है, क्योंकि '-एम' नाम बदलता है, भले ही एक ही नाम वाली मौजूदा शाखा हो। 'गिट-शाखा' मैन पेज से उद्धरण यहां दिया गया है:

एएम या एम विकल्प के साथ, <oldbranch> का नाम बदल दिया जाएगा <newbranch>। अगर <oldbranch> एक संबंधित रिफ्लॉग था, इसका नाम बदलकर बदल दिया गया <newbranch>, और शाखा नामकरण को याद रखने के लिए एक रिफ्लॉग प्रविष्टि बनाई गई है। अगर <newbranch> मौजूद है, -नाम का नाम बदलने के लिए मजबूर होना चाहिए।


83
2017-09-24 13:21



अधिलेखित शाखा का क्या होता है? - Kevin Dice
यह नए नाम / शाखा द्वारा अधिलेखित है। उदाहरण के लिए यदि आपके पास गिट में निम्नलिखित शाखाएं हैं: मास्टर बी 1 <- वर्तमान शाखा बी 2 'गिट शाखा-एम बी 2' करने के बाद आपके पास केवल होगा: मास्टर बी 2 <- वर्तमान शाखा बी 1 चली जाएगी और यदि आप चाहें इसे ठीक करें आपको इसे अपने हैश द्वारा देखना चाहिए। आप इसे 'गिट रीफ्लॉग' टाइप करके देख सकते हैं। चीयर्स। - Vanchev
-M यदि आप शाखा नाम के मामले को ठीक कर रहे हैं, तो ध्वज नाम बदलने के लिए भी उपयोगी है। बदलना myBranch सेवा मेरे MyBranch। (साथ में -m, गिट रिटर्न fatal: A branch named 'MyBranch' already exists.) - Jon Schneider


1. नाम बदलें

यदि यह आपकी वर्तमान शाखा है, तो बस करें

git branch -m new_name

यदि यह एक और शाखा है जिसे आप पुनर्नामित करना चाहते हैं

git branch -m old_name new_name

2. एक नई रिमोट शाखा को ट्रैक करें

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

git push origin :old_name
git push --set-upstream origin new_name

68
2017-12-17 13:45





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

इनमें से कोई भी काम नहीं किया:

git checkout -dumb-name

git checkout -- -dumb-name

"रों, 'रेत \एस या तो मदद नहीं की। git branch -m काम नहीं करता

यहां बताया गया है कि मैंने अंत में इसे कैसे ठीक किया। अपनी कामकाजी प्रतिलिपि में जाएं। Git / refs / head, फ़ाइल नाम "-डंब-नाम" ढूंढें, शाखा के हैश प्राप्त करें। फिर यह इसे देखेगा, एक सायन नाम के साथ एक नई शाखा बनायेगा, और पुराने को हटा देगा।

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

58
2017-11-09 07:31



क्या आपने अभी फ़ाइल को रेफ / हेड में बदल दिया नहीं है? - android.weasel
डिट्टो। यदि आपको इस जादू को करने के लिए निर्देशिका संरचना में खोदना है, तो सभी तरह से जाएं और 'एमवी - -डम्ब-नाम शानदार नाम' करें 'एक' गिट शाखा -av 'करें और आपको एक निर्देशिका संरचना दिखाई देगी .git / refs। या शायद हैश को सीधे देखने के लिए 'grep -R ^ .git / refs'। - Dave X
आप शायद इस्तेमाल किया हो सकता है reflog - Code Whisperer
ईमानदारी से, यदि वह मार्ग है जिसे आप लेना चाहते हैं, तो मैं (आईएमओ भ्रमित और संभावित रूप से खतरनाक से बचूंगा यदि आप नहीं जानते कि आप क्या कर रहे हैं) .git निर्देशिका के माध्यम से पहले स्थान पर जाएं, और बस कुछ के साथ करें कुछ "गिट लॉग" पार्सिंग के साथ सामान्य आदेश (शाखाओं को दिखाने के लिए उचित झंडे का उपयोग करके, और यह पता लगाने के लिए कि आप किस शसूम से नई शाखा चेकआउट करना चाहते हैं), और फिर इसे करें। फिर, भद्दा नामित शाखा को हटा दें। मैं घृणा वह गिट जोर देता है कि आपको कुछ चीजों को करने के लिए अपने सभी आंतरिक कार्यों को समझने की जरूरत है, लेकिन आप की बहुत सराहना करते हैं कर सकते हैं उन चीजें करो। - Jon V
2.10.1+ में खराब नाम वाले शाखा को बनाना कठिन है। यदि आप इसे किसी भी तरह से करते हैं, तो आप अपनी शाखाओं के छोटे हैश संस्करण (रिमोट के लिए ऐड-आर) प्राप्त करने के लिए गिट शाखा -v का उपयोग कर सकते हैं। यदि आपको इसकी आवश्यकता हो तो पूर्ण हैश प्राप्त करने के लिए आप गिट रेव-पार्स <shorthash> का उपयोग कर सकते हैं। - House of Dexter