मैं एक विशिष्ट परियोजना के गिट के इतिहास को लगातार स्नैपशॉट में रखने की कोशिश कर रहा हूं। मैं एक स्नैपशॉट की सामग्री के साथ भंडार निर्देशिका को आबाद करने के लिए और फिरगिट के तहत फाइलें करते समय मैं नाम बदलें सीमा को कैसे नियंत्रित कर सकता हूं?
git add -A .
git commit -m 'Version X'
यह चलाकर यह कर रहा हूं विधि this answer में सिफारिश की है। हालांकि, मैं देखता हूं कि प्रतिबद्धता केवल फ़ाइल नामों को पहचानती है जब फ़ाइल सामग्री का 100% वही रहता है। क्या git commit
का नाम बदलने के लिए कोई तरीका है, ताकि यह नाम बदल सके जहां फ़ाइल सामग्री थोड़ा बदल गई है? मुझे लगता है कि git merge
और git diff
में नाम बदलें नाम को नियंत्रित करने के लिए कई विकल्प हैं, लेकिन ये विकल्प git commit
के लिए मौजूद नहीं हैं।
बातें मैं कोशिश की है:
- एक घर काढ़ा स्क्रिप्ट के साथ नाम बदली गई फ़ाइलों का पता लगाने, और एक नया फ़ाइल सामग्री करने से पहले को नए स्थानों पर नाम बदलकर मूल फाइलों के साथ प्रतिबद्ध प्रदर्शन। हालांकि, यह एक कृत्रिम प्रतिबद्धता प्रस्तुत करता है, और यह सुरुचिपूर्ण लगता है, क्योंकि यह गिट की नाम बदलने की कार्यक्षमता का उपयोग नहीं करता है। जबकि यह भी पता लगाने में नाकाम रहने के
प्रत्येक स्नैपशॉट के लिए एक अलग शाखा बनाना और फिर
git merge -s recursive -Xtheirs -Xpatience -Xrename-threshold=20
का उपयोग कर हालांकि
master
पर लगातार शाखाओं विलय, यह मुझे जगह में पुराने संस्करण की नाम बदली गई फाइलों के साथ छोड़ दिया है, नाम
क्या इससे कोई फर्क पड़ता है? 'गिट प्रतिबद्ध' में ऐसा विकल्प सेट करना केवल उस आदेश 'यूआई को प्रभावित करेगा; गिट वास्तव में नामों को ट्रैक नहीं करता है। –
मुझे नामों में काम करने के लिए 'git log --follow'' चाहिए। यह एक सादा अनुक्रम के साथ फ़ाइल के सबसे हाल के संस्करण पर बंद हो जाता है। –