टिप्पणी में Jefromi सलाह पहली जगह में समस्या से बचने के,:
एक और टिप: केवल git branch -d
, नहीं git branch -D
का उपयोग करें।
आपको चेतावनी दी जाएगी कि अगर आप ऐसा कुछ खोने वाले हैं जो आपको काम खो देता है, तो आप -D
का उपयोग करने से पहले सोचने के लिए एक सेकंड ले सकते हैं।
(या, आप gitk
से हटा दें ताकि आप वास्तव में आप हटाई जाने वाली चीज़ों को देखते हैं। जा सकते हैं)
-d
एक शाखा को हटा दें।
शाखा को अपनी अपस्ट्रीम शाखा में पूरी तरह से विलय किया जाना चाहिए, या HEAD
में --track
या --set-upstream
के साथ कोई अपस्ट्रीम सेट नहीं किया गया था।
लेकिन अगर आप अपने काम "हार" था, many blogsabout reflog में से एक को देखने के (के रूप में James Kyburz टिप्पणी में पता चलता है):
Git reflog to the rescue:
वापस सूची में Git reflog बचाव सितम्बर 09, 2010 - क्रिस स्लॉन द्वारा लिखित | 0 टिप्पणियां »
दूसरे दिन, मैं अपनी वर्तमान शाखा रणनीति का उपयोग करके रियल ट्रैवल की सुविधा पर काम कर रहा था जिसमें हम प्रत्येक रिलीज एक अलग शाखा है।
यह सुनिश्चित नहीं है कि देर से घंटों से नींद की कमी का कारण था, लेकिन मैंने रिलीज के लिए इसे मास्टर शाखा में वापस विलय करने से पहले गलती से शाखा की अपनी स्थानीय और दूरस्थ प्रति हटा दी।
काम के घंटों को खोने के मेरे सिर के माध्यम से सदमे और विचारों की एक त्वरित स्थिति के बाद, मैं शांत हो गया और मेरे गिट ज्ञान पर भरोसा किया।
अपना पूरा प्रतिबद्धता इतिहास पढ़ना:
गिट में प्रतिबद्धता इतिहास को पढ़ने के दो तरीके हैं। पहला तरीका विवरणों की एक सूची दिखाता है जबकि दूसरा वर्तमान HEAD
के संदर्भ में लॉग दिखाता है।
// log of detailed commits by users
$> git log
// reference log compared to the current HEAD
$> git reflog
reflog
आदेश का उपयोग करना, मैं पता लगाने के लिए वास्तव में, जहां मेरे नष्ट कर दिया शाखा करने के लिए पिछले संदर्भ था सक्षम था।
reflog
का एक उदाहरण उत्पादन इस प्रकार दिखाई देंगे:
c7f3d98 [email protected]{0}: commit: Merged in some code
f5716c8 [email protected]{1}: pull : Fast-forward
d93c27b [email protected]{2}: commit: Added some items to project
...
अब reflog नहीं दिखाया जाएगा कहां शाखा नष्ट कर दिया गया है, लेकिन अगर आप को याद अपने अंतिम कि शाखा के लिए प्रतिबद्ध है और एक है विस्तृत संदेश विस्तृत, यह ढूंढना और बहाल करना आसान होना चाहिए।
अपनी शाखा को पुनर्स्थापित करना सीधे उस नई जांच को देखकर सीधे है जो आप एक नई शाखा चाहते हैं।
$> git checkout -b my_new_branch [email protected]{5}
तुम भी बहुत हैश का उपयोग नई शाखा चेकआउट करने के लिए कर सकते हैं।
$> git checkout -b my_new_branch d93c27b
काफी सरल और अब मैं वास्तव में हटाए जाने से पहले में शाखा को मर्ज करने पर स्थानांतरित कर सकते हैं।
यदि आपने कहा कि यह अभी भी होगा, तो गिट रीफ्लॉग –
देखें, मुझे आशा है कि, जब भी आप नशे में हों, तो आप फिर से अपनी मास्टर शाखा को हटा नहीं पाएंगे! – Cascabel
एक और युक्ति: केवल 'गिट शाखा-डी' का उपयोग करें, न कि 'गिट शाखा-डी'। आपको चेतावनी दी जाएगी कि अगर आप ऐसा कुछ खोने वाले हैं जो आपको काम खो देता है, तो आप '-D' का उपयोग करने से पहले सोचने के लिए एक सेकंड ले सकते हैं। (या, आप 'gitk' से हटा सकते हैं ताकि आप वास्तव में देख सकें कि आप क्या हटा रहे हैं।) – Cascabel