GitUI apporte le confort d’une GUI dans le terminal
- Utilisation rapide et intuitive au clavier uniquement
- Aucune nécessité de mémoriser des raccourcis grâce à une aide contextuelle
- Revue des modifications, commit, amend de commit (avec hooks : pre-commit, commit-msg, post-commit, prepare-commit-msg)
- Staging, unstaging, annulation et réinitialisation des fichiers, hunks et lignes
- Stash (enregistrer, appliquer, supprimer, inspecter)
- Push/fetch depuis et vers les dépôts distants
- Liste des branches (création, renommage, suppression, checkout, distantes)
- Parcours/recherche dans l’historique des commits, consultation des diff des modifications validées
- UI terminal responsive
- API git asynchrone pour une utilisation fluide
- Prise en charge des submodules
Motivation
- La plupart des opérations git sont effectuées dans le terminal, mais pour certains usages comme l’index, les commits, les diff, le stash, le blame ou les logs, une GUI git est souvent utilisée.
- Dans les grands dépôts, les GUI git populaires deviennent souvent non réactives ou inutilisables.
- GitUI offre l’expérience utilisateur et le confort d’une GUI git dans le terminal, tout en étant portable, rapide, gratuit et open source.
Benchmark
- Lors d’une présentation au meetup RustBerlin,
lazygit, tig et gitui ont été comparés en analysant l’ensemble du dépôt git du noyau Linux (avec plus de 900 000 commits) :
gitui : 24 secondes ✅, 0.17GB de mémoire ✅, binaire de 1.4MB, aucun gel ✅, aucun crash ✅
lazygit : 57 secondes, 2.6GB de mémoire, binaire de 16MB, gels présents, crashs occasionnels
tig : 4 minutes 20 secondes, 1.3GB de mémoire, binaire de 0.6MB ✅, gels occasionnels, aucun crash ✅
Feuille de route vers la 1.0
- Objectifs de haut niveau avant de déclarer la
1.0 :
- Visualisation de la structure des branches dans l’onglet log (#81)
- Rebase interactif (#32)
Limitations connues
- Pas de prise en charge des sparse repos (#1226)
- Pas de prise en charge de la signature GPG (#97)
- Pas de prise en charge de git-lfs (#1089)
- Le credential.helper requis pour https doit être configuré explicitement (#800)
- À ce stade, cet outil ne remplace pas complètement le git shell, mais les deux fonctionnent bien ensemble.
- La priorité de
gitui porte sur les fonctionnalités peu pratiques dans le git shell, comme le stash ou le staging ligne par ligne ou par hunk.
- À terme,
gitui pourrait devenir une solution tout-en-un, mais cela demandera de l’aide — c’est actuellement un projet mené sur le temps libre.
- Tous les soutiens et parrainages sont les bienvenus ! ❤️
Installation
- GitUI est en bêta et peut contenir des bugs ainsi que des fonctionnalités manquantes. Il reste toutefois assez stable pour un usage personnel et est déjà utilisé pendant son développement.
- L’installation est possible via différents gestionnaires de paquets.
Build
- Version minimale prise en charge pour
rust/cargo : 1.65
- Pré-requis pour compiler la dépendance openssl (voir https://docs.rs/openssl/latest/openssl/)
- Python est nécessaire pour exécuter la suite complète de tests (doit pouvoir être invoqué via
python)
- Le moyen le plus simple de compiler et installer
gitui est via cargo install gitui.
Questions fréquentes (FAQ)
Diagnostic
- En lançant
gitui -l avec le logging activé, des logs sont enregistrés.
Thème de couleurs
gitui fonctionne automatiquement aussi bien dans les terminaux à thème clair que sombre.
- Tout peut être personnalisé selon vos préférences.
Raccourcis clavier
- Les raccourcis clavier peuvent être personnalisés.
Soutien
Inspiration
- Inspiré de
lazygit, tig, GitUp, etc.
- Il serait intéressant d’imaginer un moyen d’utiliser une vue en carte dans un outil terminal.
Avis de GN⁺
- GitUI offre aux utilisateurs qui préfèrent le terminal la commodité d’une GUI, tout en se distinguant par sa rapidité et sa faible consommation mémoire. C’est particulièrement important pour le travail sur de grands dépôts.
- En tant que projet open source, il continue d’évoluer grâce au soutien et aux contributions de la communauté des développeurs, tout en améliorant ses fonctionnalités à partir des retours des utilisateurs.
- GitUI semble être un outil qui aide les développeurs à effectuer efficacement leurs tâches git dans un environnement terminal, et il sera particulièrement utile à ceux qui sont à l’aise avec l’utilisation du clavier.
1 commentaires
Commentaires Hacker News