SourceTree में पुश करने का प्रयास करते समय "अपडेट अस्वीकार कर दिए गए क्योंकि टैग पहले से मौजूद है"


118

स्रोत ट्री के माध्यम से पुश करने का प्रयास करते समय, मुझे निम्न त्रुटि मिलती है:

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master 
Pushing to https://user@github.com/repo.git
To https://user@github.com/repo.git
 = [up to date]      master -> master
...
 ! [rejected]        example_tag -> example_tag (already exists)
updating local tracking ref 'refs/remotes/origin/master'
error: failed to push some refs to 'https://user@github.com/repo.git'
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above

जहाँ तक मुझे पता है मैंने इस टैग में कोई बदलाव नहीं किया है। मैं इसे कैसे ठीक करूं?

जवाबों:


230

आप इसे git bash (स्रोत ट्री UI में "टर्मिनल" बटन पर क्लिक करें) में हल करने में सक्षम होना चाहिए। प्रकार:

git pull --tags

3
मुझे लगता है कि यह कम से कम प्रतिरोध का रास्ता है।
चाड

40
git pull --tags -fयदि आप चाहते हैं कि स्थानीय स्तर पर आपके द्वारा किए गए संघर्ष को आप एक अधिलेखित कर सकते हैं
DenLilleMand

2
SourceTree में, Fetch पर क्लिक करें, और "सभी टैग प्राप्त करें" सक्षम करें। वह ऐसा करेगा।
Darkgaze

116

यदि आपने उस टैग में कोई स्थानीय परिवर्तन नहीं किया है जिसे आप रखना चाहते हैं, तो आप उस टैग को हटा सकते हैं जिसे अस्वीकार कर दिया गया था क्योंकि यह पहले से मौजूद है ( example_tagइस मामले में):

  1. टैग को राइट-क्लिक करें और इसे हटाने के लिए चुनें ( सभी रिमूव चेकबॉक्स से टैग को अनचेक करें )।
  2. Fetch option चुनें (Fetch और स्टोर करें सभी टैग स्थानीय रूप से सक्षम नहीं होने चाहिए)।
  3. अब आपके पास वह टैग होना चाहिए जो अभी वापस हटा दिया गया था, और पुश करने का प्रयास अब उस त्रुटि संदेश को नहीं दिखाएगा।

कारण यह SourceTree में आम है क्योंकि है पुश सभी टैग विकल्प के लिए निर्धारित है पर डिफ़ॉल्ट रूप से। (इस त्रुटि को छिपाने का एक अन्य तरीका यह विकल्प अनचेक करना है।)


"स्थानीय रूप से सभी टैग प्राप्त और संग्रहीत करें" सक्षम होने की आवश्यकता नहीं है "मेरे लिए यह क्या था, यह जाँचने से कि समस्या केवल दोहराई गई थी।
टॉम

अपस्ट्रीम (मूल) रेपो को सत्य का स्रोत मानते हुए, यह समाधान सबसे कम विनाशकारी है, और समस्या को तुरंत ठीक करता है।
स्टीव हेंटी

दुर्भाग्य से जब आपके पास 15 खारिज किए गए टैग 1,2 हैं, और 3 चरण बहुत थकाऊ हो सकते हैं। हां, "सभी टैग को पुश करें" विकल्प को निष्क्रिय करना संभवतः जाने का एक सही तरीका है।
सगीसर्जनादिर

27

push all tagsजब आप अपने git पुश की पुष्टि करते हैं, तो UI के नीचे अनचेक करें


क्या आपका मतलब था push all tags?
वोडिन

महान! इसका अवलोकन नहीं किया। धन्यवाद
मेग -90

@Wodin तो अगर आप push all tagsUI में चेक करते हैं तो यह पिछले टैग को ओवरराइट करने की कोशिश करेगा। लेकिन आपको इसे ओवरराइट को रोकने के लिए
UNCHECK करना होगा

@ JDev-Guns मैं सिर्फ शब्दांकन को उद्धृत कर रहा था। आपने मूल रूप से कहा था push all TABs। मैं SourceTree से परिचित नहीं हूं, लेकिन मुझे संदेह था कि आप के TAGsबजाय इसका मतलब था TABs
वोडिन

@Wodin ओह गेटचा! मुझे लगता है कि मैंने कहा था, TAGsलेकिन अगर मैंने नहीं किया, तो मेरे कहने का मतलब थाTABs
JDev-बंदूकें

15

git pull --tagsवास्तव में अच्छी तरह से काम करता है, लेकिन कभी-कभी आप इस कमांड के साथ भी एक त्रुटि प्राप्त कर सकते हैं। उदाहरण त्रुटि संदेश:

 ! [rejected]        example_tag      -> example_tag  (would clobber existing tag)

इसे कमांड से हल किया जा सकता है: git pull --tags -f

स्रोत:

https://github.com/concourse/git-resource/issues/233


14

सुनिश्चित करें कि आप पुश करते समय "सभी टैग पुश करें" बटन को अनचेक करें।

यहां छवि विवरण दर्ज करें


जैसा कि ऊपर उल्लेख किया गया है, यदि आपने स्थानीय रूप से एक नया टैग जोड़ा है तो इसका मतलब यह नहीं है कि इसे रिमोट पर नहीं धकेला जाता है?
bytedev

0

हां, वास्तव में, इससे पहले कि आप टैग को खींच लें push --tags। मेरी समस्या का समाधान किया।


-1

मैं इस तरह से SourceTree पर समस्या को हल करता हूं :

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