2011-03-03 9 views
9

क्या आप "गिट शाखा" टाइप करते समय गिट शाखा को दिखाना बंद कर देते हैं, लेकिन फिर भी इतिहास में पहुंचने योग्य है, यानी गिटक के माध्यम से? मेरे पास कई पुरानी शाखाएं हैं जिन्हें मैं अपनी दृष्टि से बाहर निकलना चाहता हूं, लेकिन मुझे टेराबाइट हार्ड डिस्क वाली दुनिया में विकास के अंत तक इतिहास को हटाने का कोई कारण नहीं दिखता है।उन्हें पुरानी गिट शाखाओं को अचूक बनाने के बिना अदृश्य बनाओ?

टैग जो मैं ढूंढ रहा हूं उसके करीब हो सकता है, लेकिन मैं अपने मृत संदेश को उनके प्रतिबद्ध संदेश से परे नहीं रखना चाहता हूं। इसके अलावा, मैं मुख्य लाइन विकास इतिहास में विशेष रूप से अच्छे बिंदुओं के लिए आरक्षित टैग चाहता हूं।

उत्तर

4

पुरानी शाखाओं को कई मुफ्त गिट होस्टिंग साइटों में से एक पर रिमोट रिपोजिटरी में पुश करें।

+0

... या, अधिक कुशलतापूर्वक और आसानी से, स्थानीय रूप से क्लोन भंडार के लिए। लिनक्स पर, क्लोन और मूल के बीच भंडारण साझा करने के लिए हार्ड लिंक स्वचालित रूप से उपयोग किए जाएंगे। –

-3

गिट संशोधन आईडी (लगभग) अद्वितीय हैं। यदि आप पुरानी शाखाएं पहुंचने योग्य रहना चाहते हैं, तो बस उन्हें इकट्ठा न करें; आप उन्हें सीधे अपनी संशोधन आईडी की जांच करके वापस ला सकते हैं। git gc को किसी भी शाखा के सिर से सीधे पहुंचने के लिए संशोधित करने के लिए इसे अपने भंडार के .git/config को ट्वीव करने की आवश्यकता होगी।

+4

ऑटो जीसी को अक्षम करना एक खराब विकल्प है: एक सक्रिय रूप से विकसित भंडार बहुत अधिक जगह का उपभोग करेगा। –

5

आप refs/ के अंदर के अंदर अपना खुद का नामस्थान बना सकते हैं, मैन्युअल रूप से update-ref कमांड (और फिर शाखा को हटाकर) का उपयोग करके।

इस दृष्टिकोण से कुछ चेतावनियां:

  • वे git branch में दिखाई नहीं है, लेकिन वे किसी भी अतिरिक्त विकल्प के बिना git log --decorate में और gitk में दिखाई है, और आप सभी refs सूची git show-ref उपयोग कर सकते हैं।
  • वे स्वचालित रूप से प्राप्त नहीं होते हैं, इसलिए यदि आप उन्हें ले जाना चाहते हैं तो आपको ls-remote और fetch का उपयोग करना होगा।

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

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