2016-08-04 9 views
5

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

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

मुझे क्या चाहिए: एकाधिक स्नैपशॉट्स को कम करें, उनके बीच स्विच करने में सक्षम हो जाएं और जब मैं ऑनलाइन भंडार में सबकुछ दबाता हूं तो उन्हें स्थायी रूप से हटा दें। मैं बेकार कोड की वजह से रेपो पर जगह बर्बाद नहीं करना चाहता, बेकार काम करता है जो दृश्य को अव्यवस्थित करता है।

यह एक नोब सवाल हो सकता है, दुर्भाग्यवश इंटरनेट पर हर गाइड कुछ वास्तविक उपयोग मामलों के साथ बहुत सारे आदेश और अवधारणाओं को बताती है।

धन्यवाद एक बहुत हर किसी

उत्तर

2

जब मैं कोड लिखता हूं तो मैं विभिन्न स्थानों में सामग्री का परीक्षण करने के लिए संपूर्ण भंडार के त्वरित स्नैपशॉट बनाना चाहता हूं।

हां, git इसके लिए बहुत अच्छा है।

और इन स्नैपशॉट को स्थायी रूप से बनाए रखने या हटाए जाने की आवश्यकता है, क्योंकि ये केवल परीक्षण और प्रयोग हैं।

शाखाएं आपके लिए यह कर सकती हैं।

जहाँ तक मैं Git देख सकते हैं हमेशा के लिए सब कुछ रहता है,

नहीं, यह सच नहीं है।यह केवल उन सभी कामों को रखता है जिनमें उनके साथ जुड़ी शाखा या टैग होता है, साथ ही उन सभी चीजों को सीधे उनके ऊपर ले जाता है। अन्य काम करता है, जिसे आप किसी भी शाखा या टैग के माध्यम से नहीं पहुंच सकते हैं (कुछ समय बाद) स्वचालित रूप से कचरा संग्रह के माध्यम से हटा दिया जाएगा।

मुझे क्या पसंद आएगा: एकाधिक स्नैपशॉट्स को कम करें, उनके बीच स्विच करने में सक्षम हों और जब मैं ऑनलाइन भंडार में सबकुछ दबाता हूं तो उन्हें स्थायी रूप से हटा दें।

हाँ, Git शाखाओं।

मैं बेकार कोड की वजह से रेपो पर जगह बर्बाद नहीं करना चाहता, बेकार काम करता है जो दृश्य को अव्यवस्थित करता है।

हां, वे दूर जाना होगा; और जब तक हम यहां लिनक्स आकार की परियोजनाओं के बारे में बात नहीं कर रहे हैं, अंतरिक्ष को कोई भी मुद्दा नहीं होना चाहिए।

यह एक नोब सवाल हो सकता है, दुर्भाग्यवश इंटरनेट पर हर गाइड कुछ वास्तविक उपयोग मामलों के साथ बहुत सारे आदेश और अवधारणाओं को बताती है।

http://gitready.com/beginner/2009/02/17/how-git-stores-your-data.html एक उत्कृष्ट परिचय है; https://www.jayway.com/2013/03/03/git-is-a-purely-functional-data-structure/ में बहुत सारे विवरण हैं (पहले लिंक के बाद पढ़ें, केवल आपके लिए अधिक हो सकता है)।

+0

आप कमाल हैं। हाँ, मैंने शाखाओं के बारे में बहुत कुछ सोचा था, मैं बस एसवीएन की तरह गड़बड़ नहीं चाहता था। तो यदि कोई टैग संबद्ध नहीं है, तो सही हो जाता है, है ना? मैंने कचरा संग्रह के बारे में पढ़ा लेकिन यह पता नहीं लगा कि यह कैसे काम करता है। – Mc128k

+1

यह दृश्यों के पीछे काम करता है। मुझे पता है कि आपका क्या मतलब है, यदि आप एसवीएन के लिए उपयोग किया जाता है तो शाखाओं के बारे में कुछ आशंकाएं समझ में आती हैं; वे 'गिट' में पूरी तरह से अलग (साफ, आसान, हल्के वजन) हैं। – AnoE

1

Git आपके उपयोग के मामले के लिए एक उत्कृष्ट पसंद की तरह लगता है। कई अन्य संस्करण नियंत्रण प्रणालियों (वीसीएस) के विपरीत, गिट एक भंडार या परियोजना आधारित वीसीएस है। जब आप गिट में प्रतिबद्ध करते हैं, तो आप अनिवार्य रूप से प्रत्येक फ़ाइल सहित, अपनी संपूर्ण परियोजना का एक स्नैपशॉट लेते हैं। यह अन्य वीसीएस जैसे कि पेर्सफोर्स के विपरीत है, जहां प्रत्येक फ़ाइल का अपना इतिहास है। इसलिए गिट में एक राज्य से अगले राज्य में अपनी परियोजना के चारों ओर स्थानांतरित करना आसान है।

गिट के बारे में एक और अच्छी बात यह है कि यह केवल diff को एक प्रतिबद्धता से अगले तक (कम से कम अवधारणात्मक रूप से, अभ्यास में यह वृक्ष संरचना बनी रहती है) को स्टोर करता है। इसलिए यदि आप अपनी परियोजना में एक फ़ाइल को केवल एक प्रतिबद्धता से बदलते हैं, तो गिट केवल को आपकी परियोजना में बदल देगा। यह गिट दुबला और मतलब बनाता है, और ऐसी किसी भी चीज़ को हटाने की आवश्यकता नहीं है जिसे आप अत्यधिक समझ सकते हैं; गिट काम पूरा करने के लिए आवश्यक छोटी मात्रा में जानकारी स्टोर करता है। संकल्पनात्मक रूप से, आप गिट के बारे में सोच सकते हैं एक भंडार पर अपनी पूरी परियोजना का पूर्ण स्नैपशॉट, और बाद में केवल रिकॉर्डिंग को होने पर बदलना चाहिए।

+0

'diff' का आपका विवरण भ्रामक है - यह नहीं है कि' git' आंतरिक रूप से कैसे काम करता है। – AnoE

+0

@AnoE आपकी टिप्पणी भ्रामक है, क्योंकि आप इसे ध्वनि बनाते हैं कि गिट _not_ प्रत्येक प्रतिबद्धता में परिवर्तन फ़ाइलों के अंतर को स्टोर नहीं करता है, जब यह ठीक है तो यह करता है। –

+0

http://stackoverflow.com/questions/10398744/does-git-store-diff-information-in-commit-objects – AnoE

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