Cara menggunakan rsync untuk membuat cadangan direktori tanpa subdirektori git


43

Saya ingin menyalin cdirektori saya dengan semua subdirektori tidak termasuk ./gitsubdirektori. Saya melakukannya menggunakan 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

Bisakah saya melakukannya dengan lebih baik?

Jawaban:


48

Cukup tambahkan pengecualian eksplisit untuk .git:

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

Pilihan lain adalah membuat yang ~/.cvsignoreberisi baris berikut bersama direktori lain yang ingin Anda kecualikan:

.git/


Ini ditentukan bagaimana Anda harus memberikan jalan untuk --exclude. Jika Anda memiliki masalah dengan itu, periksa jawaban ini .
totymedli

32

Anda bisa menggunakannya rsync --cvs-exclude. Ini juga mengabaikan .gitdirektori.

Tetapi berhati-hatilah, bahwa ini juga mengabaikan direktori yang disebut coreterjadi di file sumber Magento.


10
Ini berfungsi untuk .gitdirektori level atas tetapi tidak untuk .gitdirektori dalam submodul. Ini juga tidak mengabaikan file Git seperti .gitmodules.
maxschlepzig
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.