如何使用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

我可以做得更好吗?

Answers:


48

只需为.git添加一个显式排除:

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

另一种选择是创建~/.cvsignore包含以下行以及您要排除的任何其他目录的目录:

.git/


效果不错。谢谢。我尝试某些选择没有成功。
亚当(

@Adam:如果您对此答案感到满意,请勾选左侧的对勾。
goldilocks 2013年

它指定了应如何指定的路径--exclude。如果您有问题,请查看此答案
totymedli

32

您可以使用rsync --cvs-exclude。它还忽略.git目录。

但是请注意,这也将忽略core在Magento源文件中出现的目录。


12
+1表示“但请保重……”
omikron 2014年

10
这适用于顶层.git目录,但不适用于.git子模块中的目录。它还不会忽略Git文件,例如.gitmodules
maxschlepzig 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.