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

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/


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.