A opção -C
para o rsync pode ser o que você deseja.
Não deixe que a descrição curta na página man engane você. Parece que a opção só se aplica ao CVS, mas dependendo da sua versão do rsync, ele irá ignorar os arquivos de quase todos os sistemas comuns de controle de versão existentes.
# rsync version: 3.0.7
-C, --cvs-exclude auto-ignore files in the same way CVS does
...
The exclude list is initialized to exclude the following items
(these initial items are marked as perishable — see the FILTER
RULES section):
RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS
.make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak
*.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe
*.Z *.elc *.ln core .svn/ .git/ .bzr/
then, files listed in a $HOME/.cvsignore are added to the list
and any files listed in the CVSIGNORE environment variable (all
cvsignore names are delimited by whitespace).