git-sync-all
git-sync-all: CLI-Tool, das alle Git-Repositories in einem Verzeichnisbaum synchronisiert (Tags, Commit, Pull, Push). Übersicht, Quick Start und Verweise auf die Detailseiten.
Zurück zu Bash Scripts & Tools
git-sync-all
Video-Tutorial
Das Video zeigt Installation, ersten Sync und die wichtigsten Funktionen von git-sync-all in unter 4 Minuten.
Überblick
git-sync-all ist ein Bash-Tool, das alle Git-Repositories in einem Verzeichnisbaum nacheinander synchronisiert: Tags holen, Änderungen committen, vom Remote pullen und lokale Commits pushen. Ein Befehl ersetzt die manuelle Runde durch jedes Repository.
Gedacht für Entwickler, die auf mehreren Maschinen arbeiten und alle Projekte mit einem Aufruf auf demselben Stand halten wollen.
Das Tool committet mit
git add -Aauch nicht verfolgte Dateien und pusht ohne Rückfrage, sobald du--yesverwendest. Starte neue Setups mit--dry-runund lies die Seite Sicherheit.
Was pro Repository passiert
- Tags per
git fetch --tags --prune-tagsholen - Änderungen im Arbeitsverzeichnis erkennen und nach Rückfrage committen (
git add -A) - Neue Commits vom Upstream pullen (Rebase oder Merge)
- Lokale Commits pushen
Pro Repository gibt es kein Force-Push, keinen Branch-Wechsel und keinen Tag-Push. Schlägt ein Pull fehl, bricht das Tool Rebase oder Merge selbst ab.
Funktionen
- Repository-Suche bis zu einer einstellbaren Tiefe, Include- und Exclude-Filter per Glob
- Dry-Run, Status-Tabelle und interaktive Rückfragen mit Konfliktmenü
- Konfliktstrategien
skip,stashundcommitfür den Auto-Modus - Repository-Inventar
repos.ymlmit--verifyund--issues - Lock-Datei gegen parallele Läufe
- Config-Datei nach XDG-Konvention, Windows-Installer, Git-Alias
git check
Schnellstart
git clone https://github.com/markus-michalski/git-sync-all.git
cd git-sync-all
make link PREFIX=$HOME/.local
git-sync-all --init-config
git-sync-all --dry-run
git-sync-all
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation | Voraussetzungen, Linux, macOS, Windows, Alias, Deinstallation |
| Konfiguration | Alle Variablen, Platzhalter, Rangfolge |
| Verwendung | Optionen, Beispiele, Exit-Codes, Cron |
| Sync-Ablauf | Was pro Repository passiert, Konflikte, Stash |
| Inventar | repos.yml, --verify, --issues |
| Sicherheit | Auto-Commit, Löschung, Config als Skript |
| Fehlerbehebung | Meldungen, Ursachen, Lösungen |
| Technische Details | Module, Ablauf, Tests |
Lizenz und Links
Lizenziert unter der MIT-Lizenz.
| Ressource | Link |
|---|---|
| GitHub Repository | https://github.com/markus-michalski/git-sync-all |
| Releases | https://github.com/markus-michalski/git-sync-all/releases |
| Issues / Bug-Reports | https://github.com/markus-michalski/git-sync-all/issues |
