Come utilizzare rsync per eseguire il backup di una directory senza la sottodirectory git


43

Voglio copiare la mia cdirectory con tutte le sottodirectory esclusa la ./gitsottodirectory. Lo faccio usando 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

Posso farlo meglio?

Risposte:


48

Basta aggiungere un'esclusione esplicita per .git:

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

Un'altra opzione è quella di creare ~/.cvsignorecontenente la seguente riga insieme a tutte le altre directory che si desidera escludere:

.git/


Si specifica come si dovrebbe dare il percorso per --exclude. Se hai problemi, controlla questa risposta .
totymedli,

32

Puoi semplicemente usare rsync --cvs-exclude. Ignora anche le .gitdirectory.

Ma attenzione, questo ignora anche le directory chiamate corecome presenti nei file sorgente di Magento.


10
Funziona per la .gitdirectory di livello superiore ma non per le .gitdirectory nei sottomoduli. Inoltre non ignora i file Git come .gitmodules.
maxschlepzig,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.