So verwenden Sie rsync zum Sichern eines Verzeichnisses ohne git-Unterverzeichnis

43

Ich möchte mein cVerzeichnis mit allen Unterverzeichnissen außer dem ./gitUnterverzeichnis kopieren . Ich mache es mit 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

Kann ich es besser machen

Adam
quelle

Antworten:

48

Fügen Sie einfach einen expliziten Ausschluss für .git hinzu:

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

Eine weitere Option ist das Erstellen von ~/.cvsignoreVerzeichnissen mit der folgenden Zeile zusammen mit anderen Verzeichnissen, die Sie ausschließen möchten:

.git/

Quetza
quelle
Funktioniert gut Vielen Dank. Ich habe einige Optionen ohne Erfolg ausprobiert.
Adam
@Adam: Wenn Sie mit dieser Antwort zufrieden sind, kreuzen Sie bitte das Häkchen links an.
Goldlöckchen
Es wird festgelegt, wie Sie den Pfad angeben sollen --exclude. Wenn Sie Probleme damit haben, lesen Sie diese Antwort .
Totymedli
32

Sie können nur verwenden rsync --cvs-exclude. Es werden auch .gitVerzeichnisse ignoriert .

Beachten Sie jedoch, dass dies auch Verzeichnisse ignoriert, coredie in Magento-Quelldateien vorkommen.

sebastianwagner
quelle
12
+1 für "Aber
omikron
10
Dies funktioniert für das .gitVerzeichnis der obersten Ebene, jedoch nicht für .gitVerzeichnisse in Submodulen. Es ignoriert auch keine Git-Dateien wie .gitmodules.
Maxschlepzig