Dokumentation

Befehle

gitpulse [flags]                 Status aller konfigurierten Repositories
gitpulse init [flags] [DIR ...]  Repositories unter DIR finden und in die Config eintragen

Flags von gitpulse

Flag Wirkung
--compact nur Repositories mit Handlungsbedarf
-v, --all Details zu jedem lokalen Branch (Sync-Stand, Alter) und zu Stashes
--jobs N so viele Repositories parallel scannen (Standard: eins pro CPU; auf langsamen Platten senken)
--progress Scan-Fortschritt anzeigen (nur Terminal-Ausgabe)
--json strukturierte Ausgabe für Skripte
--html eigenständiger, kontrastreicher HTML-Bericht
--no-color reiner Text
--config PATH diese Config-Datei verwenden
--version Version ausgeben

Flags von gitpulse init

Flag Wirkung
--depth N wie viele Verzeichnisebenen durchsucht werden (Standard 4)
--dry-run nur auflisten, was eingetragen würde
--config PATH Config-Datei, die angelegt oder erweitert wird

init überspringt versteckte Ordner, node_modules und vendor und schaut nicht in ein bereits gefundenes Repository hinein. Projekte, die schon in der Config stehen — aktiv oder deaktiviert —, werden nie doppelt eingetragen. Du kannst es also einmal pro Ordner aufrufen.

Statusspalte

Status Bedeutung
DIRTY (2.go, 1.css) nicht committete Änderungen (geändert, neu oder gelöscht), nach Dateityp gruppiert
↑N N lokale Commits, nicht gepusht, summiert über alle lokalen Branches
↓N N Commits auf dem Remote-Tracking-Branch, noch nicht gepullt
N stash Einträge in git stash list
N stale lokale Branches ohne Commit seit über 30 Tagen (nur zur Info)
(No Remote) das Repository hat kein Remote
ERROR Pfad fehlt, ist nicht lesbar oder kein Git-Repository
CLEAN nichts zu tun

↓N beruht auf dem letzten git fetch — GitPulse selbst kontaktiert das Remote nie. Mit git fetch (oder einem geplanten git fetch --all) bleibt die Anzeige aktuell.

Config-Datei

GitPulse sucht die Config in dieser Reihenfolge:

  1. --config PATH
  2. die Umgebungsvariable GITPULSE_CONFIG
  3. config/repos.ini im aktuellen Verzeichnis
  4. ~/.gitpulsemlc/repos.ini — hierhin schreibt gitpulse init standardmäßig
[projects]
# Name = absoluter Pfad
webshop    = /home/ich/code/webshop
api-server = /home/ich/code/api-server

[general]
# /home/ich in der Ausgabe als ~ zeigen
replace_path_prefix = /home/ich
replace_with        = ~

[settings]
column_name_width = 25     # Mindestbreite der Spalte NAME
show_summary      = true   # Zusammenfassung am Ende
compact_mode      = false  # wie immer --compact übergeben

[disabled_projects]
# wird nicht gescannt, bleibt aber gemerkt
altes-tool = /home/ich/code/altes-tool

Ein Pfad, der auf /.git endet, wird akzeptiert und automatisch korrigiert.

FAQ

Ändert GitPulse etwas an meinen Repositories? Nein. Es liest nur. Es committet, fetcht, pullt und pusht nie und schreibt keine Dateien um.

Warum zeigt ein Repository ↓0, obwohl es auf dem Remote neue Commits gibt? GitPulse vergleicht mit dem Stand deines letzten git fetch. Vorher fetchen oder das Fetchen planen.

Windows blockiert das Binary. Der Defender markiert manchmal unsignierte Werkzeuge, die schnell viele Dateien lesen. Eine Ausnahme für gitpulse.exe anlegen.

Warnt macOS vor dem Binary? Nein. Die macOS-Downloads auf dieser Seite sind mit einer Developer ID signiert und von Apple notarisiert. install.sh holt dieselben signierten Binaries.

Wie höre ich auf, ein Repository zu beobachten, ohne die Zeile zu löschen? Von [projects] nach [disabled_projects] verschieben.

Mehr: JSON-Schema · Go-Bibliothek · Changelog