Git में, शाखाएँ एक निर्देशित चक्रीय ग्राफ (DAG) के कमिट्स में आने वाले बिंदु (संदर्भ) हैं। इसका मतलब यह है कि एक शाखा को हटाने से केवल कमिट्स के संदर्भ हटा दिए जाते हैं, जो कि डीएजी में कुछ कमिट कर सकते हैं, इस तरह अदृश्य हो सकते हैं। लेकिन सभी कमिट जो कि डिलीट की गई ब्रांच पर थीं, अभी भी रिपॉजिटरी में होंगी, कम से कम जब तक अगम्य कॉंटिट्यूड प्रून हो जाता है (उदाहरण के लिए git gc)।
ध्यान दें कि git branch -dएक शाखा को हटाने से इंकार कर दिया जाए तो यह सुनिश्चित नहीं किया जा सकता है कि इसे हटाने से यह पहुंच से बाहर नहीं होगा। आपको git branch -Dशाखा को हटाने के लिए मजबूत का उपयोग करने की आवश्यकता है यदि यह पहुंच से बाहर हो सकता है।
ध्यान दें कि पहुंच योग्य नहीं होने पर, यदि वे मौजूद हैं, तो वे केवल हटाए गए शाखा के अंतिम सिरे के बीच स्थित हैं और या तो एक प्रतिबद्ध है जो किसी अन्य मौजूदा शाखा में विलय हो गया है, किसी भी टैग किए गए कमिट, या शाखा बिंदु; जो भी बाद में हो। निम्न स्थिति में उदाहरण के लिए:
---- ओ ---- * ---- * ---- / एम ---- * <- मास्टर <- हेड
\ /
\ - - ---- .-- / - x --- y <- हटाई गई शाखा
केवल 'x' और 'y' को हटाता है, शाखा को हटाने के बाद पहुंच से बाहर हो जाएगा।
यदि आप gc.reflogExpire90 दिनों की अवधि के भीतर एक डिलीट ब्रांच पर काम करते हैं , तो आपके पास HEAD रिफ्लॉग (देखें git reflog show HEAD, या git log --oneline --walk-reflogs HEAD) में डिलीट ब्रांच का आखिरी सिरा होगा । आपको हटाए गए सूचक को पुनर्प्राप्त करने के लिए HEAD reflog का उपयोग करने में सक्षम होना चाहिए। यह भी ध्यान दें कि इस मामले में, केवल एक हटाए गए शाखा में पहुंच योग्य नहीं है, इस gc.reflogExpireUnreachableअवधि के भीतर छंटाई (हटाने) से संरक्षित किया जाएगा , जो कि डिफ़ॉल्ट रूप से 30 दिनों का है।
यदि आप HEAD के लिए किसी भी हटाए गए शाखा की नोक को नहीं ढूंढ सकते हैं, तो आप हटाए गए शाखा की नोक git fsckको खोजने के लिए "अगम्य प्रतिबद्ध <sha1>" खोजने के लिए उपयोग कर सकते हैं , और उन (माध्यम git show <sha1>से git log <sha1>) की जांच कर सकते हैं।
डिलीट ब्रांच की टिप कैसे मिलती है, इस पर स्वतंत्र, आप डिलीट को पूर्ववत कर सकते हैं, या केवल डिलीट की गई ब्रांच का उपयोग करके फिर से बना सकते हैं
git branch <deleted-branch> <found-sha1-id>
ध्यान दें कि एक शाखा के लिए फिर से खोना खो जाएगा।
इसमें git-resurrect.sh स्क्रिप्ट भी है contrib/जिसमें दिए गए नाम के साथ एक शाखा टिप के निशान ढूंढने में मदद मिलती है और इसे पुनर्जीवित (undelete) करती है।