2012-09-19 14 views
15

मुझे दो शाखाओं - second को first में मर्ज करने की आवश्यकता है और फिर second से छुटकारा पाएं। यहाँ मैं क्या किया है:क्यों गिट मुझे शाखा को सुरक्षित रूप से हटाने की अनुमति नहीं देता है?

  • git clone घ परियोजना ताज़ा प्रति
  • git checkout --track origin/second, कुछ परिवर्तन किए, और
  • git checkout --track origin/first प्रतिबद्ध है, कुछ परिवर्तन किए पाने के लिए, और प्रतिबद्ध
  • git merge second (Git कहते हैं, " पुनरावर्ती द्वारा किए गए मर्ज ")
  • git branch -d second

फिर गिट कहते हैं:

$ git branch -d second 
warning: not deleting branch 'second' that is not yet merged to 
     'refs/remotes/origin/second', even though it is merged to HEAD. 
error: The branch 'second' is not fully merged. 
If you are sure you want to delete it, run 'git branch -D second'. 

ऐसा क्यों हो रहा है? मुझे पहले कभी विलय के बाद यह संदेश नहीं मिला है। विलय ठीक काम करता था, कोई संघर्ष नहीं। मैं second शाखा को सुरक्षित रूप से कैसे हटा सकता हूं?

+0

'गिट चेकआउट दूसरा' 'गिट पुश मूल द्वितीय' के बाद गिट स्टॉप शिकायत करता है, लेकिन मुझे समझ में नहीं आता क्यों। –

+1

एक जंगली अनुमान है, लेकिन हो सकता है कि गिट शिकायत करता है कि आपने इसे हटाने से पहले मूल में 'दूसरा' धक्का नहीं दिया है? यह भी सुनिश्चित करें कि आप »अलग सिर में नहीं हैं« राज्य – knittl

+0

@knittl हाँ, आप सही मानते हैं, लेकिन गिट की देखभाल क्यों होगी कि मैंने 'सेकंड' को धक्का दिया है? –

उत्तर

32

मेरे प्रयोगों और @ knittl और @ twalberg की टिप्पणियों के आधार पर, ऐसा लगता है कि गिट बस चाहता था कि मैं इसे हटाने से पहले second शाखा में अपने परिवर्तनों को धक्का दे।

मैंने किया:

$ git checkout second 
$ git push origin second 
$ git checkout first 
$ git branch -d second 

जो बिना चेतावनी के काम किया।

+0

'शाखा गठबंधन नहीं करेगा- डी दूसरा' इसे हल भी करेगा या यह एक खतरनाक अभ्यास है? – Bart

+0

@ बार्ट यह "इसे हल करें" से आपका क्या मतलब है इस पर निर्भर करता है। ऐसा करना मेरे समाधान के समान परिणाम नहीं होगा - 'मूल' रिमोट की स्थिति अलग होगी। –

+0

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

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