git-sync-all: Installation
Installation von git-sync-all unter Linux, macOS und Windows: Symlink, Kopie per make, PowerShell-Installer, Git-Alias, Voraussetzungen und Deinstallation.
git-sync-all: Installation
Voraussetzungen
| Komponente | Anforderung | Hinweis |
|---|---|---|
| Bash | 4.3 oder neuer, 4.4 empfohlen | Der Code verwendet Namerefs (local -n, ab 4.3) und assoziative Arrays. Leere Arrays unter set -u werden erst ab 4.4 fehlerfrei expandiert. Die macOS-Standard-Bash 3.2 reicht nicht. |
| Git | 2.17 oder neuer empfohlen | Bei älteren Versionen gibt das Tool eine Warnung aus und läuft weiter. |
| GNU-Werkzeuge | find, sort, grep mit -P |
Verwendet werden find -print0, sort -z und grep -oP. |
| make | beliebig | Nur für make link und make install. |
GitHub CLI (gh) |
beliebig, optional | Nur für --issues und für Clone-Hinweise bei --verify. |
| Git for Windows | aktuell | Nur unter Windows. Das Tool läuft auf der mitgelieferten bash.exe. |
Linux und macOS
Symlink (empfohlen)
Der Symlink zeigt auf bin/git-sync-all im geklonten Repository. Das Skript löst den Symlink zur Laufzeit auf und findet lib/ selbst. Nach einem git pull ist die neue Version sofort aktiv.
git clone https://github.com/markus-michalski/git-sync-all.git
cd git-sync-all
make link PREFIX=$HOME/.local
Ohne PREFIX verwendet das Makefile /usr/local und legt den Link in /usr/local/bin an. Dafür sind meist Root-Rechte nötig. Stelle sicher, dass ~/.local/bin in deinem PATH liegt.
Kopie nach /usr/local
sudo make install
make install kopiert bin/git-sync-all nach $PREFIX/bin und alle lib/*.sh nach $PREFIX/lib/git-sync-all/. Dabei schreibt es den Bibliothekspfad in der installierten Binary um. Nach einem git pull musst du make install erneut ausführen.
Kopie ohne sudo
make install PREFIX=$HOME/.local
Die Beispieldateien aus
config/werden beimake installnicht mitinstalliert.--init-configerzeugt dann eine kurze eingebaute Konfiguration, und--init-inventoryerzeugt das Inventar aus den gefundenen Repositories. Beim Symlink-Betrieb werden stattdessen die vollständigen Beispieldateien kopiert.
Windows
Windows hat kein make. Der PowerShell-Installer install.ps1 sucht die bash.exe von Git for Windows, legt einen Bash-Forwarder und eine .cmd-Datei an und ergänzt den Benutzer-PATH.
git clone https://github.com/markus-michalski/git-sync-all.git
cd git-sync-all
.\install.ps1
| Parameter | Wirkung |
|---|---|
-Prefix PFAD |
Zielverzeichnis. Standard: %LOCALAPPDATA%\Programs\git-sync-all |
-Link |
Kopiert nichts, sondern verweist auf diesen Klon. git pull aktualisiert die Installation. |
-NoPathUpdate |
Lässt den Benutzer-PATH unverändert. |
-Uninstall |
Entfernt die Installation wieder. |
Blockiert PowerShell das Skript, starte es mit powershell -ExecutionPolicy Bypass -File .\install.ps1. Öffne nach der Installation ein neues Terminal.
Pfade in
SYNC_BASE_DIRSmüssen unter Windows in Git-Bash-Schreibweise stehen, zum Beispiel/c/Users/du/projekte. Ein Laufwerksbuchstabe wieC:/...bricht, weil der Doppelpunkt die Einträge trennt.
Git-Alias git check
git-sync-all --setup-alias
Der Befehl setzt global alias.check auf den absoluten Pfad der Binary. Existiert der Alias schon, gibt das Tool eine Warnung aus und überschreibt ihn nicht. Danach startest du das Tool mit git check.
Erste Schritte
git-sync-all --version
git-sync-all --init-config
git-sync-all --dry-run
--init-config legt ~/.config/git-sync-all/config.conf an und öffnet die Datei im Editor, wenn das Terminal interaktiv ist und $EDITOR (alternativ $VISUAL, sonst nano) existiert. Details stehen unter Konfiguration.
Deinstallation
make uninstall PREFIX=$HOME/.local
sudo make uninstall
git config --global --unset alias.check
make uninstall entfernt die Binary beziehungsweise den Symlink und das Verzeichnis $PREFIX/lib/git-sync-all. Konfiguration und Inventar unter ~/.config/git-sync-all/ bleiben bestehen und müssen bei Bedarf von Hand gelöscht werden. Unter Windows entfernt .\install.ps1 -Uninstall die Installation.