2010-05-04 11 views

उत्तर

21

मुझे पता है कि यह पुराना है, लेकिन मुझे लगता है कि मुझे एक समाधान मिला।

रन:

stashName=`git stash create`; 
git archive <options> $stashName 

के बाद से Git एक ठोस एक संग्रह बनाने के लिए प्रतिबद्ध चाहता है, हम कर सकते हैं एक 'एक बंद' git stash का उपयोग कर के लिए प्रतिबद्ध। create कमांड केवल स्टैश प्रतिबद्ध बनाता है (आपकी कार्यशील निर्देशिका को रीसेट नहीं करता है या इसे स्टैश स्टैक पर धक्का नहीं देता है) और इसके लिए हैश देता है।

यदि आप खतरनाक प्रतिबद्धता से अंतरिक्ष के बारे में चिंतित हैं, तो आप इसे git gc --prune=now से साफ़ कर सकते हैं। अन्यथा, बस 2 सप्ताह प्रतीक्षा करें और यह गायब हो जाएगा।

+0

अच्छा काम करता है, धन्यवाद! –

2

यदि आपने परिवर्तन नहीं किए हैं, तो git archive आपकी सहायता नहीं करेगा। यदि आप बस अपने कामकाजी क्षेत्र का स्नैपशॉट चाहते हैं, तो tar शायद आपकी सबसे अच्छी शर्त है।

11

मेरा उद्देश्य के लिए nevsan के जवाब में सुधार - किसी भी मामले (प्रतिबद्ध है या नहीं) के क्षेत्र में नवीनतम कोड संग्रह करने के लिए:

uploadStash=`git stash create`; git archive -o code_outgoing.zip ${uploadStash:-HEAD} 
+3

एक त्रुटि फिक्स्ड: गिट स्टैश बनाएं [अब] हमेशा सफलतापूर्वक लौटता है, और स्टैश करने के लिए कोई फ़ाइल नहीं होने पर कुछ भी प्रिंट नहीं करता है। निकास कोड पर भरोसा करने के बजाय $ {var: -default} वाक्यविन्यास का उपयोग करें। –

+0

आईआईआरसी इसके साथ एक मुद्दा है, यह संग्रह से गिट-हटाई गई फ़ाइलों को नहीं लेता है। –

3

git ls-files साथ एक अन्य समाधान:

git ls-files -z | xargs -0 tar -czvf archive.tar.gz 
+1

यह मेरी राय में, सबसे अच्छा जवाब है। हालांकि, मैं ls-files के -z विकल्प और xargs के -0 (शून्य) विकल्प का उपयोग करने की अनुशंसा करता हूं जैसे रिक्त स्थान के साथ फ़ाइल नाम सही ढंग से संभाले जाते हैं: git ls-files -z | xargs -0 tar-czvf archive.tar.gz । – S2108887

+0

आप बिल्कुल सही हैं! धन्यवाद। मैंने इन विकल्पों को कमांड लाइन में जोड़ा है। –

+0

'गिट एलएस-फाइलें | tar Tczf - archive.tar.gz' में एक कमांड के तर्क के आकार पर सिस्टम-लगाई गई सीमा नहीं है। xargs किसी भी कमांड के लिए अच्छा नहीं है जिसे आपको वास्तव में सब कुछ के लिए केवल एक बार चलाने की आवश्यकता है। – jthill

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