Як використовувати rsync для резервного копіювання каталогу без підкаталога git


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. Якщо у вас проблеми з цим, перегляньте цю відповідь .
totymedli

32

Можна просто використовувати rsync --cvs-exclude. Він також ігнорує .gitкаталоги.

Але подбайте про те, щоб це також ігнорувало каталоги, що називаються coreу вихідних файлах Magento


10
Це працює для .gitкаталогу верхнього рівня, але не для .gitкаталогів в підмодулях. Він також не ігнорує файли Git, як-от .gitmodules.
maxschlepzig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.