क्या एक सरल तरीका है कि किसी दिए गए कमिट या हिट्स की श्रृंखला से परिवर्तित फ़ाइलों को निर्यात / संग्रह करना है? मैं ऐसा करने के लिए स्पष्ट निर्देश ढूंढ सकता हूं (और मैं लिनक्स / गिट के लिए नया हूं)।
मैं msysgit का उपयोग कर रहा हूं, और अधिकांश भाग के लिए मैं संपूर्ण रिपॉजिटरी को तैनात करने के साथ ठीक हूं, लेकिन कई मामलों में एक बार में कुछ फ़ाइलों को छोटे फ़िक्सेस को लागू करने के लिए यह अधिक कुशल है।
दूरस्थ सर्वर पर git को धकेलना / खींचना / स्थापित करना वास्तव में एक विकल्प है क्योंकि मेरी पहुंच का स्तर परियोजनाओं और ग्राहकों के बीच भिन्न होता है।
क्या कोई सीधा-सीधा रास्ता है (मोटा अनुमान):
pipe "diff --names-only" to "git-archive"?
उत्तर:
उत्तर № 1 के लिए 25मैं "वहाँ नहीं लगता है" git- संग्रह को शामिल करने की कोई आवश्यकता है का उपयोग करते हुए --name-only
, आप फ़ाइलों को टारगेट कर सकते हैं:
tar czf new-files.tar.gz `git diff --name-only [diff options]`
चूंकि आप लिनक्स में नए हैं, इसलिए इसे कुछ स्पष्टीकरण की आवश्यकता हो सकती है:
कमांड लाइन में backticks पहले शेल को backticks के भीतर कमांड को निष्पादित करने का कारण बनता है, फिर उस कमांड के आउटपुट को कमांड लाइन में कमांड का विकल्प देता है tar
। ऐसा git diff
पहले चलाया जाता है, जो फ़ाइल नाम की एक सूची बनाता है, प्रत्येक पंक्ति पर एक। नए स्थान रिक्त स्थान पर ढह गए हैं और फ़ाइलों की पूरी सूची पर रखा गया है tar
कमांड लाइन। फिर tar
दिए गए संग्रह को बनाने के लिए चलाया जाता है। ध्यान दें कि यह काफी लंबी कमांड लाइनें उत्पन्न कर सकता है, इसलिए यदि आपके पास बहुत अधिक संख्या में बदली हुई फाइलें हैं तो आपको एक अलग तकनीक की आवश्यकता हो सकती है।