Git उपनिर्देशिका के बिना डायरेक्टरी बैकअप के लिए rsync का उपयोग कैसे करें


43

मैं cउपनिर्देशिका को छोड़कर सभी निर्देशिकाओं के साथ अपनी निर्देशिका की प्रतिलिपि बनाना चाहता हूं ./git। मैं इसका उपयोग करता हूं rsync:

echo "copy c and sh files "
rsync -a --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c
# remove .git directory = do not send it to dropbox. Thx to Tomasz Sowa
rm -rf ~/Dropbox/Public/c/.git

क्या मैं इसे बेहतर कर सकता हूं?

जवाबों:


48

केवल .git के लिए एक स्पष्ट बहिष्करण जोड़ें:

rsync -a --exclude='.git/' --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c

एक अन्य विकल्प ~/.cvsignoreनिम्नलिखित पंक्ति के साथ बनाना है जिसमें किसी अन्य निर्देशिका के साथ आप बाहर करना चाहते हैं:

.git/


यह निर्दिष्ट किया जाता है कि आपको किस तरह से रास्ता देना चाहिए --exclude। यदि आपको इससे कोई समस्या है, तो इस उत्तर को देखें
तात्यामेली

32

आप बस इस्तेमाल कर सकते हैं rsync --cvs-exclude। यह .gitनिर्देशिकाओं को भी अनदेखा करता है ।

लेकिन ध्यान रखें, यह भी coreMagento स्रोत फ़ाइलों में होने वाली निर्देशिकाओं को अनदेखा करता है।


10
यह शीर्ष स्तर की .gitनिर्देशिका के लिए काम करता है लेकिन .gitसबमोडुल्स में निर्देशिकाओं के लिए नहीं । यह भी Git फ़ाइलों की तरह उपेक्षा नहीं करता है .gitmodules
मैक्सक्लेपज़िग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.