जवाबों:
पहले देखो 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।)