Comment utiliser rsync pour sauvegarder un répertoire sans sous-répertoire git


43

Je veux copier mon crépertoire avec tous les sous-répertoires à l'exclusion du ./gitsous-répertoire. Je le fais en utilisant 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

Puis-je le faire mieux?

Réponses:


48

Ajoutez simplement une exclusion explicite pour .git:

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

Une autre option consiste à créer ~/.cvsignorecontenant la ligne suivante avec tous les autres répertoires que vous souhaitez exclure:

.git/


Il est spécifié comment vous devez donner le chemin --exclude. Si vous avez des problèmes, consultez cette réponse .
totymedli

32

Vous pouvez simplement utiliser rsync --cvs-exclude. Il ignore également les .gitrépertoires.

Attention, ceci ignore également les répertoires appelés corecomme se produisant dans les fichiers source Magento.


10
Cela fonctionne pour le .gitrépertoire de niveau supérieur mais pas pour les .gitrépertoires des sous-modules. Il n'ignore pas non plus les fichiers Git .gitmodules.
maxschlepzig
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.