2012-01-27 27 views
5

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

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

मैंने इस शाखा को बनाने के पहले एक समान समस्या देखी और मैं इसे रिमोट गिट सर्वर पर नहीं देख पा रहा था।

मैं इस शाखा से चेकआउट करने में भी सक्षम हूं।

क्या मुझे यहां कुछ याद आ रही है?

उत्तर

7

दूरस्थ

git push remote :refs/heads/development 
+3

या समकक्ष: 'गिट पुश रिमोट: विकास' – Koraktor

+0

@ कोराकटर, हाँ, ऐसा होगा, जब तक कि रेफरी कहीं और न हो। –

3

पर शाखा को निकालने के लिए आप निम्न रहस्यमय आदेश के साथ दूरदराज के शाखा को हटा दें:

git push origin :newfeature 

तो ट्रैकिंग शाखा के रूप में हटा दिया जाता है आप अपने सूचकांक अद्यतन करने के लिए चाहते हो सकता है अच्छी तरह से:

git fetch origin --prune 
9

इन उत्तरों पर विस्तार करने के लिए, प्रत्येक शाखा मूल रूप से तीन स्थानों में मौजूद है:

  • दूरस्थ सर्वर पर, उदा। origin/foo
  • आपका origin/foo की स्थानीय प्रतिलिपि (git fetch के माध्यम से अद्यतन किया जाता है जो)
  • स्थानीय शाखा foo (निम्नलिखित git fetchgit merge origin/foo के माध्यम से अद्यतन किया जाता है जो - या अधिक सामान्यतः, दोनों git pull के माध्यम से एक साथ किया जाता है)।

git branch -d इन तीनों में से अंतिम, स्थानीय शाखा को हटा देता है। git branch -d -r दूरस्थ शाखा के आपकी प्रति हटा देगा (या आप स्थानीय शाखाओं को हटाने के बाद git remote prune origin चला सकते हैं)।

रिमोट सर्वर पर शाखा को हटाने के लिए, आपको git push का उपयोग करना होगा। इसके लिए पुराना वाक्यविन्यास git push origin :branchname है। ऐसा इसलिए है क्योंकि वाक्यविन्यास localref:remoteref है, उदाहरण के लिए एक अलग शाखा के साथ एक दूरस्थ शाखा में अपनी मशीन पर स्थानीय शाखा को धक्का देना संभव है, उदाहरण के लिए git push origin localbranch:remotebranch। यदि आप localbranch भाग खाली छोड़ देते हैं, तो आप रिमोट शाखा में कुछ भी को धक्का देने के लिए गिट को बता रहे हैं।

यदि यह भ्रमित है, तो चिंता न करें, गिट डेवलपर आपके साथ सहमत हैं। नए संस्करणों में --delete विकल्प है इसलिए git push origin --delete branchnamegit push origin :branchname जैसा ही काम करता है, लेकिन इसका इरादा अधिक स्पष्ट है।

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