Suchen Sie das GIT-Repository in einem bestimmten Verzeichnis und führen Sie den Befehl „git bundle“ aus.

Suchen Sie das GIT-Repository in einem bestimmten Verzeichnis und führen Sie den Befehl „git bundle“ aus.

Ich verwende Ubuntu 12.04 TLS, wo ich ein Git-Repository in einem bestimmten Verzeichnis habe. Ich versuche, das geplante Backup des Repositorys zu erstellen und es in einem bestimmten Verzeichnis zu platzieren, das per E-Mail versendet werden kann.

Dabei erfahre ich, wie ich alle Git-Repositorys in einem bestimmten Verzeichnis finde. Beim Googeln habe ich den folgenden Befehl gefunden

find /home/mysys/D/ -name .git -type d -prune

aber es enthält den Pfad als

/home/mysys/D/testing/.git

die alle im Verzeichnis verknüpften Git-Dateien auflistet und es funktioniert, aber was ich ausführen muss, ist git bundle create directoryname.bundle --all, um es automatisierter zu machen, wobei ich Folgendes ausprobiert habe

find /home/mysys/D/ -name .git -type d -prune -exec git bundle create test.bundle --all {} \;

Das obige Bash-Skript gibt

fatal: Invalid gitfile format: .git

So geht's, damit es robust funktioniert.

Dank im Voraus.

Antwort1

Du möchtest SeinIndas git-gesteuerte Verzeichnis, wenn git bundleausgeführt wird, verwenden Sie alsofind ... -execdir ... \;

find /home/mysys/D/ -type d -name .git -prune -execdir git bundle create backup.bundle --all \;

Dadurch wird in allen diesen Verzeichnissen ein Backup-Bundle erstellt. Von dort aus können Sie diese verschieben oder mit weiteren Skripten verarbeiten. Die Bündelungsseite der Dinge ist jedoch erledigt.

verwandte Informationen