जवाबों:
पहले देखो git help archive
। archive
एक git कमांड है जो केवल git tracked फ़ाइलों वाले अभिलेखागार बनाने की अनुमति देता है। शायद तुम जो खोज रहे हो। मैन पेज के अंत में सूचीबद्ध एक उदाहरण:
git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
सरलतम उत्तर: जोड़ें --exclude-vcs
। यह सभी संस्करण नियंत्रण प्रणाली निर्देशिकाओं को बाहर करता है
व्यक्तिगत रूप से मैं उपयोग करता हूं
tar --exclude-vcs -zcvf foo.tar.gz ./FOLDER_NAME
इसलिए आपको --exclude-vcs
केवल कमांड के अंत में जोड़ने की आवश्यकता है ।
tar --exclude-vcs -zcvf foo.tar.gz ./FOLDER_NAME
यदि आप चाहते हैं कि संग्रह में git द्वारा ट्रैक की गई फ़ाइलों को शामिल किया जाए, लेकिन खुद git रिपॉजिटरी या कोई जेनरेट की गई या अनट्रैक की गई फ़ाइल नहीं है, तो उपयोग करेंgit archive
।
यदि आप विशेष रूप से बाहर करना चाहते हैं, .git
लेकिन लिनक्स या FreeBSD या OSX या Cygwin के तहत बाकी सब कुछ शामिल करते हैं, तो टार में एक निर्देशिका को बाहर करने का एक सरल विकल्प है:
tar -c --exclude .git -f - foo | gzip >foo.tgz
जीएनयू टार (यानी लिनक्स या सिगविन के तहत) के साथ, आप इसे छोटा कर सकते हैं tar czf foo.tgz --exclude .git foo
।
अभिलेखागार बनाने का POSIX तरीका है pax
।
pax -w -t -s '!.*/\.git$!!' -s '!.*/\.git/.*!!' foo | gzip >foo.tgz
git
किसी भी सिस्टम पर संकलन tar
उपलब्ध नहीं है? :-)
tar
कोई --exclude
विकल्प नहीं है, जैसे कि OpenBSD (जो माना जाता है s
कि पैक्स के विकल्प को दोहराता है, लेकिन यह एक सामान्य टार कमांड सिंटैक्स एक्सटेंशन नहीं है)।
एक उत्तर के लिए धन्यवाद मुझे अपने एक प्रश्न पर एक और समाधान सूझा। तो पूर्णता के लिए, यहाँ एक समाधान का उपयोग किया जा रहा है find
:
find . -path './.git' -prune -o -print |
tar -czvf ../archive.tgz --no-recursion -T -
और यदि आप संभव .git
फ़ोल्डर को अंदर (उप) + फ़ोल्डर से बाहर करना चाहते हैं :
find . -path '*/.git' -prune -o -print |
tar -czvf ../archive.tgz --no-recursion -T -
लैटर के माध्यम से भी प्राप्त किया जा सकता है:
find . -type d -name '.git' -prune -o -print |
tar -czvf ../archive.tgz --no-recursion -T -
यदि आप find
संशोधन तिथि, अनुमतियाँ,…
(जैसा कि अक्सर अच्छी तरह से बनाई गई फ़ाइल नाम मान लिया जाता है, अन्यथा आपको अलग-अलग के रूप में अशक्त बाइट्स का उपयोग करने की आवश्यकता होती है जो कि समर्थित -print0
होने पर find
और इसके --null
लिए मतलब हो सकता है tar
।)