GitUI bietet den Komfort einer GUI im Terminal
- Schnelle und intuitive Bedienung nur mit der Tastatur
- Kontextabhängige Hilfe, ohne dass Hotkeys auswendig gelernt werden müssen
- Änderungen prüfen, committen und Commit-Korrekturen durchführen (inklusive Hooks: pre-commit, commit-msg, post-commit, prepare-commit-msg)
- Dateien, Hunks und Zeilen stagen, unstagen, verwerfen und zurücksetzen
- Stashing (speichern, anwenden, löschen, prüfen)
- Push/Fetch zu bzw. von Remote-Repositories
- Branch-Liste (erstellen, umbenennen, löschen, auschecken, Remotes)
- Commit-Log durchsuchen/suchen und Diffs der committeten Änderungen ansehen
- Reaktionsfähige Terminal-UI
- Asynchrone git-API für flüssige Bedienung
- Unterstützung für Submodule
Motivation
- Die meisten git-Aufgaben werden im Terminal erledigt, aber für einige Anwendungsfälle wie Index, Commits, Diffs, Stash, Blame und Logs wird häufig eine git-GUI verwendet.
- Beliebte git-GUIs reagieren in großen Repositories oft nicht mehr oder werden unbenutzbar.
- GitUI bietet die Nutzererfahrung und den Komfort einer git-GUI im Terminal und ist dabei portabel, schnell, kostenlos und Open Source.
Benchmarks
- In einem Vortrag beim RustBerlin-Meetup wurden
lazygit, tig und gitui verglichen, indem das komplette Linux-git-Repository (mit über 900.000 Commits) geparst wurde:
gitui: 24 Sekunden ✅, 0,17 GB Speicher ✅, 1,4 MB Binärdatei, keine Hänger ✅, keine Abstürze ✅
lazygit: 57 Sekunden, 2,6 GB Speicher, 16 MB Binärdatei, Hänger vorhanden, gelegentliche Abstürze
tig: 4 Minuten 20 Sekunden, 1,3 GB Speicher, 0,6 MB Binärdatei ✅, gelegentliche Hänger, keine Abstürze ✅
Roadmap zu 1.0
- Hochrangige Ziele vor der Ausrufung von
1.0:
- Visualisierung der Branch-Struktur im Log-Tab (#81)
- Interaktives Rebase (#32)
Bekannte Einschränkungen
- Keine Unterstützung für Sparse-Repositories (#1226)
- Keine Unterstützung für GPG-Signaturen (#97)
- Keine Unterstützung für git-lfs (#1089)
- Der für https erforderliche credential.helper muss explizit gesetzt werden (#800)
- Dieses Tool ersetzt derzeit die git shell noch nicht vollständig, aber beide Werkzeuge arbeiten gut zusammen.
- Die Priorität von
gitui liegt derzeit auf Funktionen, die in der git shell unbequem sind, etwa Stashing oder das Stagen von Zeilen bzw. Hunks.
- Langfristig könnte
gitui zu einer One-Stop-Lösung werden, dafür wird jedoch Hilfe benötigt – aktuell ist es ein Freizeitprojekt.
- Jede Unterstützung und Förderung ist willkommen! ❤️
Installation
- GitUI ist eine Beta-Version und kann Bugs sowie fehlende Funktionen enthalten. Für den persönlichen Einsatz ist es jedoch recht stabil und wird auch während der Entwicklung verwendet.
- Die Installation ist über verschiedene Paketmanager möglich.
Build
- Minimal unterstützte
rust/cargo-Version: 1.65
- Anforderungen für den Build der openssl-Abhängigkeit (siehe https://docs.rs/openssl/latest/openssl/)
- Zum Ausführen der vollständigen Test-Suite wird Python benötigt (muss als
python aufrufbar sein)
- Am einfachsten lässt sich
gitui mit cargo install gitui bauen und installieren.
Häufig gestellte Fragen (FAQs)
Diagnose
- Wenn
gitui -l mit aktiviertem Logging ausgeführt wird, werden Logs geschrieben.
Farbthemen
gitui funktioniert automatisch sowohl in Terminals mit hellem als auch mit dunklem Theme.
- Alles kann nach den eigenen Vorlieben angepasst werden.
Tastenbelegung
- Die Tastenbelegung kann angepasst werden.
Unterstützung
Inspiration
- Inspiriert von
lazygit, tig, GitUp und anderen.
- Es wäre gut, einen Weg zu finden, eine Map-Ansicht in Terminal-Tools nutzbar zu machen.
Meinung von GN⁺
- GitUI bietet Nutzern, die das Terminal bevorzugen, den Komfort einer GUI und überzeugt zugleich mit hoher Geschwindigkeit und geringem Speicherverbrauch. Das ist besonders wichtig beim Arbeiten mit großen Repositories.
- Als Open-Source-Projekt entwickelt es sich dank Unterstützung und Beiträgen der Entwickler-Community kontinuierlich weiter und verbessert seine Funktionen anhand von Nutzerfeedback.
- GitUI scheint ein Werkzeug zu sein, das Entwickler dabei unterstützt, git-Aufgaben auch in der Terminal-Umgebung effizient auszuführen, und dürfte besonders für Nutzer sehr nützlich sein, die an die Tastaturbedienung gewöhnt sind.
1 Kommentare
Hacker-News-Kommentare