2010-11-11 20 views
60

मैंने कुछ बदलावों को धक्का देने के लिए एक शाखा notmaster बनाई है। जब मैं उस शाखा के साथ समाप्त हो गया, तो मैंने परिवर्तनों को master में विलय कर दिया, उन्हें बाहर धक्का दिया, और फिर स्थानीय notmaster हटा दिया।मैं गिट में रिमोट शाखा कैसे हटा सकता हूं?

$ git branch -a 
* master 
    remotes/origin/master 
    remotes/origin/notmaster 

क्या दूरस्थ notmaster को हटाने के लिए वैसे भी है?


एक छोटे से अधिक स्पष्टता, solution from Ionut साथ:

सामान्य विधि मेरे लिए विफल रहा:

$ git push origin :notmaster 
error: dst refspec notmaster matches more than one. 

क्योंकि मैं शाखा के रूप में एक ही नाम के साथ एक टैग पड़ा है यही कारण है कि। यह मेरी तरफ से एक खराब विकल्प था और अस्पष्टता का कारण बन गया।

$ git push origin :refs/heads/notmaster 
+2

मैं तुमसे प्यार करता हूँ! मैं घंटों के लिए एक ही समस्या को खत्म करने की कोशिश कर रहा हूं! यही कारण है कि मैं StackOverflow +1 प्यार करता हूँ !!! – Logan

उत्तर

50

git push origin :notmaster, जो मूल रूप से "notmaster दूरदराज के लिए कुछ भी नहीं धक्का" का अर्थ है: तो उस मामले में।

git branch -d {branch name} //All changes must be committed first. 
git branch -D {branch name} //Does not require commit. 

हटाएँ Gitorious शाखा::

+1

त्रुटि: dst refspec notmaster एक से अधिक मेल खाता है। – chrisaycock

+0

यह पहला है। मैंने पहले उस त्रुटि को नहीं देखा है। –

+2

आह, आपका दूसरा सुझाव काम किया! मेरे पास उसी शाखा के साथ एक टैग है जो उस शाखा (नोटमास्टर) के रूप में है। क्या इससे त्रुटि हो सकती है? – chrisaycock

0

स्थानीय शाखा हटाएँ

Delete the local branch first. 
git push {gitorious push url} :{branch name} 
+2

आपके दो उत्तरों में से दूसरा वह है जो ओपी की तलाश में था, हालांकि यह गिटारियस के लिए विशिष्ट नहीं है, और आपको यूआरएल की आवश्यकता नहीं है - सिर्फ एक रिमोट नाम, जिसे ओपी ने दिया था। 'गिट पुश उत्पत्ति: नोटमास्टर', या इस मामले में, 'गिट पुश उत्पत्ति: रेफ/हेड/नोटमास्टर' एक स्पष्ट उत्तर होगा। – Cascabel

12
git push origin --delete notmaster 

आप या Git 1.7.0 का उपयोग कर बाद में कर रहे हैं, इस चाल करना होगा । 1.7.0 Git से पहले, आप कम सहज (लेकिन समान रूप से प्रभावी) सिंटैक्स का उपयोग करने की जरूरत:

git push origin :notmaster 

बड़े वाक्य रचना अभी भी Git के नए संस्करण में काम करता है, लेकिन नए वाक्य रचना अधिक मानवीय और आसान याद करने लगता है । यदि मैं को एक शाखा को हटाना चाहता हूं, तो --delete टाइप करना प्राकृतिक चीज़ जैसा दिखता है।

1.7.0 release notes से:

"git push" learned "git push origin --delete branch", a syntactic sugar for "git push origin :branch".

3

ऐसा इसलिए हुआ क्योंकि शाखा और टैग के नाम पर ही है।

दूरदराज के उपयोग

git push origin :refs/heads/branchname

से शाखा को हटाने के लिए दूरदराज के उपयोग

git push origin :refs/tags/tagname

से टैग हटाने के लिए स्थानीय आप निम्नलिखित का उपयोग कर सकते से हटाने के लिए।

git branch -d branchname

git tag -d tagname

39

मैं एक ही मुद्दा था। मेरे पास एक शाखा और एक नाम 3.2 था। यही कारण है कि यह कहता है कि एक से अधिक मैच है:

git error: dst refspec 3.2 matches more than one. 

यहाँ कैसे शाखा हटाया जाए:

git push origin :heads/3.2 

और यहाँ कैसे टैग हटाया जाए:

git push origin :tags/3.2 
+0

यह मुश्किल है, बिल्कुल मेरी समस्या! –

+0

स्मार्ट! यह काम करता है! – xtofl

0

निम्न चरणों का पालन चाल भी कर सकते हैं:

$ git fetch --prune --tags 
$ git push origin :refs/tags/{same-branch-tag-name} 
$ git push origin :{same-branch-tag-name} 
$ git push --tags 
संबंधित मुद्दे