केवल सबसे हाल के संग्रह से एक भंडार बनाना और वहां से काम करना सरल होगा, लेकिन मैं परिवर्तनों का इतिहास कैसे शामिल करूं?
बहुत आसान। कोडबेस एक ज़िप संग्रह से दूसरे में कैसे साफ होता है, इस पर निर्भर करने के दो तरीके हैं: संचयी अनज़िप कमिट या प्रत्येक कमिट के बाद क्लीन अप ।
संचयी अनज़िप कमिट: अनज़िप, कमिट, अनज़िप अन्य, कमिटेड अनदर, आदि ...
इसका समाधान यह है कि सबसे पहले पुराने संग्रह के आधार पर एक git रिपॉजिटरी बनाएं, इसे कमिट करें, फिर बाद में / उत्तरोत्तर-नया सामान जोड़ें, जो कि और इसी तरह से और इसी तरह। तो उदाहरण के लिए, मान लें कि आपके पास तीन अभिलेख हैं जिनका नाम इस प्रकार है:
archive_20150801.zip
archive_20150804.zip
archive_20150806.zip
अब मैं अनज़िप करके शुरू करूंगा archive_20150801.zip
और उसके आधार पर प्रारंभिक गिट रिपॉजिटरी बनाऊंगा । फिर मैं unZIP archive_20150804.zip
और ड्रैग / कॉपी-या बस unZIP जगह में कर दूंगा - ताकि सामान पुराने archive_20150801.zip
और इतने पर ओवरराइट हो जाए। के साथ डिट्टो archive_20150806.zip
।
हर कमिट के बाद साफ करें: अनज़िप, कमिट, डिलीट, अनज़िप दूसरे, कमिटेड अनदर, डिलीट अदर, आदि…
लेकिन अगर आप प्रत्येक ज़िप संग्रह में पुरानी फ़ाइलों के साथ नई फ़ाइलों के अपने विलय में अतिरिक्त सटीक होना चाहते हैं, तो मैं यह करने की सलाह दूंगा:
- किसी संग्रह को अनज़िप करें और उसे कमिट करें।
- तब प्रतिबद्ध के बाद कि किया जाता है, manually- नहीं के माध्यम से
git rm
-निकालें सभी निर्देशिका कि रेपो शामिल से फाइल। सुनिश्चित करें कि गिट-विशिष्ट सामान को न निकालें .git
, .gitignore
और ऐसे।
- उस काम के साथ — और जगह में एक अपेक्षाकृत खाली निर्देशिका - अगले संग्रह को अनज़िप करें और इसे सामग्री को रिपॉजिटरी डायरेक्टरी में रखें।
- अब नई फ़ाइलों के साथ
git add -A
एक नया काम करते हैं।
- उस के साथ, अगले ज़िप संग्रह के लिए एक चरण पर वापस जाएं जिसे आप मिश्रण में जोड़ना चाहते हैं।
उस "कमिट स्टफ, डिलीट स्टफ्स, न्यू स्टफ्स, न्यू स्टफ्स को कमिट करें" का लाभ यह है कि आप आवारा फाइलों के साथ समाप्त नहीं होंगे जो कि केवल अंतिम रिपॉजिटरी में कोड के शुरुआती संस्करण में मौजूद हो सकते हैं। प्रत्येक कमिट में जिप का एक शुद्ध प्रतिबिंब होता है और फाइलों और निर्देशिकाओं का संचयी ढेर नहीं होता है जो एक दूसरे के ऊपर विस्तारित होते हैं।
कमिट डेट्स को सीधा रखना
दिनांक / समय के इतिहास के कुछ झलक रखने के लिए, आप कुछ फैंसी फुटवर्क कर सकते हैं और वास्तविक संग्रह के लिए वास्तविक स्टैट ओवरफ्लो उत्तर में बताए अनुसार वास्तविक संग्रह तिथियों को लागू करने के लिए प्रतिबद्ध कर सकते हैं । लेकिन मुझे व्यक्तिगत रूप से लगता है कि अति जटिल और जोखिम-भरा है; मैं इस तरह के कार्यों को यथासंभव सरल रखना पसंद करता हूं। इसके बजाय मैं एक प्रतिबद्ध संदेश दूंगा जो स्पष्ट रूप से बताता है कि प्रत्येक प्रतिबद्ध क्या है:
2015-08-01 ज़िप रिलीज़ संग्रह के लिए प्रतिबद्ध।
इस तरह आप आसानी से यह जान सकते हैं कि भविष्य में संग्रह का स्रोत क्या है, केवल टिप्पणी टिप्पणी इतिहास ब्राउज़ करके।
मैंने अपने आप को इस पुराने स्कूल के माध्यम से प्रबंधित पुराने अभिलेखागार के लिए किया है, "कॉपी-द-डायरेक्टरी-एंड-ए-अन-अनेजेड-जिप-आर्काइव" विधि और यह एक दर्द है, लेकिन यह लंबे समय तक मदद करता है एक परियोजना के लिए एक कोडिंग इतिहास के कुछ झलक को बनाए रखें।