2013-01-17 8 views
11

मैं निम्नलिखित शाखाओं हैइतनी सारी अप्रयुक्त शाखाएं। सफाई कैसे करें?

* master 
newbranch 
remotes/origin/HEAD -> origin/master 
remotes/origin/api-notes 
remotes/origin/event-creation-validation 
remotes/origin/master 
remotes/origin/organizerlocation-bug-demo 
remotes/origin/ticket-180 
  1. वर्तमान शाखा मास्टर मूल/मास्टर से अलग या इन शाखाओं को एक साथ काम कर रहे हैं है?

  2. मैं विभिन्न शाखाओं में अंतिम परिवर्तनों का पता कैसे लगा सकता हूं और मैं उन्हें सफाई के लिए कैसे हटा सकता हूं?

बहुत बहुत धन्यवाद।

उत्तर

3

1/वर्तमान शाखा मास्टर मूल/मास्टर से अलग है या क्या ये शाखाएं एक साथ काम कर रही हैं?

यह अलग है (भले ही यह क्लोन के बाद origin/master से शुरू हुआ हो), और origin/master को ट्रैक नहीं कर रहा है (देखें "how do I change the remote a git branch is tracking?")।

2/कैसे मैं आप के साथ रिमोट नाम स्थान से एक शाखा नष्ट कर सकते हैं सफाई

करने के लिए उन्हें नष्ट कर सकते हैं:

git branch -rd origin/api-notes 

(अधिक पर "How do you Remove an Invalid Remote Branch Reference from Git?")

आप diff git कर सकते हैं या गिट लॉग दो शाखाओं को देखने के लिए जो आपके पास नहीं है:
"Git diff .. ? What's the difference between having .. and no dots?" देखें।
"Git: Compare All Local Commits to Remote Repo Version" भी देखें।

7

आपके पास चिंता करने या कुछ भी साफ करने का कोई कारण नहीं है। यही कारण है कि:

वर्तमान शाखा मास्टर मूल/मास्टर से अलग है या क्या ये शाखाएं एक साथ काम कर रही हैं?

यदि आपने ट्रैकिंग शाखा के रूप में मास्टर बनाया है या यदि आपने इसे क्लोन किया है (डिफ़ॉल्ट क्लोन द्वारा ट्रैकिंग मास्टर बनाता है), तो हाँ, प्रकार। ट्रैकिंग का मतलब यह है कि गिट इस शाखा मैपिंग को पुश के लिए डिफ़ॉल्ट मर्ज के रूप में उपयोग करेगा और विलय के लिए करेगा। यह स्थिति संदेश भी प्रदर्शित करेगा जैसे "शाखा मास्टर मूल/मास्टर से 2 काम करता है"।

मैं विभिन्न शाखाओं में अंतिम परिवर्तनों का पता कैसे लगा सकता हूं?

मैं बस का प्रयोग करेंगे

git branch -av 

इस छोटे सभी शाखाओं, स्थानीय और दूरस्थ के लिए आईडी और संक्षिप्त सारांश प्रतिबद्ध दिखाता है।

इसके ऊपर, आप गिट लॉग का उपयोग करना चाह सकते हैं। git log --decorate यह देखने में बहुत मददगार है कि किन शाखाएं बताती हैं कि क्या काम करता है।

git config --global log.decorate short 

कैसे मैं उन्हें सफाई के लिए नष्ट कर सकते हैं: सबसे हाल ही में Git संस्करणों में (1.7.11+) आप इसे स्थायी रूप से इस आदेश का उपयोग सक्षम कर सकते हैं?

आप नहीं करते - रिमोट शाखाएं आपकी नहीं हैं। रिमोट शाखाएं पिछले git fetch पर एक समय में रिमोट की स्थिति को प्रतिबिंबित करती थीं।आप उन्हें नहीं बना सकते हैं, और यदि आप उन्हें git branch -rd का उपयोग करके हटा देते हैं, तो अगली बार जब आप git fetch करते हैं तो ये दूरस्थ शाखा पॉइंटर्स तुरंत वापस आ जाएंगे।

लेकिन आप पूरी तरह से इस रिमोट को दूर करता है, तो:

git remote rm origin 

तो इस दूरदराज के लिए सभी दूरस्थ शाखाओं एक बार में चला जाएगा।

+0

अच्छा स्पष्टीकरण, मेरे उत्तर से अधिक विस्तृत। +1 – VonC

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