Une interface utilisateur de terminal simple pour les commandes git
La maintenance de ce projet est rendue possible par tous les contributeurs et sponsors. Si vous souhaitez sponsoriser ce projet et faire apparaître votre avatar ou le logo de votre entreprise ci-dessous, cliquez ici. ?
C'est l'heure de la diatribe : vous l'avez déjà entendu, git est puissant , mais à quoi sert ce pouvoir quand tout est si difficile à faire ? Le rebasage interactif vous oblige à éditer un foutu fichier TODO dans votre éditeur ? Vous plaisantez j'espère? Pour préparer une partie d'un fichier, vous devez utiliser un programme en ligne de commande pour parcourir chaque morceau et si un morceau ne peut plus être divisé mais contient du code que vous ne souhaitez pas mettre en scène, vous devez éditer un fichier de correctif obscur. à la main ? Vous plaisantez j'espère?! Parfois, on vous demande de cacher vos modifications lors du changement de branche pour vous rendre compte qu'après avoir changé et supprimé, il n'y a même pas eu de conflits et qu'il aurait été bien de simplement extraire la branche directement ? Vous devez vous moquer de moi !
Si vous êtes un simple mortel comme moi et que vous en avez assez d'entendre à quel point git est puissant alors que dans votre vie quotidienne, cela vous fait très mal au cul, lazygit pourrait être pour vous.
Lazygit n'est pas mon travail à temps plein mais c'est un travail à temps partiel, donc si vous souhaitez soutenir le projet, pensez à me parrainer.
Appuyez sur espace sur la ligne sélectionnée pour la mettre en scène, ou appuyez sur v
pour commencer à sélectionner une plage de lignes. Vous pouvez également appuyer sur a
pour sélectionner l’intégralité du morceau actuel.
Appuyez sur i
pour démarrer un rebase interactif. Ensuite, écrasez ( s
), corrigez ( f
), déposez ( d
), éditez ( e
), montez ( ctrl+i
) ou descendez ( ctrl+j
) l'un des commits TODO, avant de continuer le rebase en affichant le rebase menu d'options avec m
puis en sélectionnant continue
.
Vous pouvez également effectuer ces actions de manière ponctuelle (par exemple en appuyant sur s
sur un commit pour l'écraser) sans démarrer explicitement un rebase.
Cette démo utilise également shift+down pour sélectionner une plage de commits à déplacer et à corriger.
Appuyez sur shift+c
sur un commit pour le copier et appuyez sur shift+v
pour le coller (cherry-pick).
Appuyez sur b
dans la vue des commits pour marquer un commit comme bon/mauvais afin de commencer un git bisect.
Lorsque vous voulez vraiment vous débarrasser de tout ce qui apparaît lorsque vous exécutez git status
(et oui, cela inclut des sous-modules sales) style kidpix, appuyez sur shift+d
pour afficher le menu des options de réinitialisation, puis sélectionnez l'option « nuke ».
Appuyer sur shift+a
sur n'importe quelle validation modifiera cette validation avec les modifications actuellement effectuées (en exécutant un rebase interactif en arrière-plan).
Vous pouvez filtrer une vue avec /
. Ici, nous filtrons la vue de nos branches, puis appuyons sur enter
pour afficher ses validations.
Lazygit dispose d'un système de commandes personnalisé très flexible. Dans cet exemple, une commande personnalisée est définie qui émule l'action d'extraction de branche intégrée.
Vous pouvez créer des arbres de travail pour avoir plusieurs branches en même temps sans avoir besoin de les stocker ou de créer des validations WIP lors du basculement entre elles. Appuyez sur w
dans la vue des branches pour créer un arbre de travail à partir de la branche sélectionnée et y basculer.
Vous pouvez créer un correctif personnalisé à partir d'un ancien commit, puis supprimer le correctif du commit, diviser un nouveau commit, appliquer le correctif à l'envers à l'index, et bien plus encore.
Dans cet exemple, nous avons un commentaire redondant que nous souhaitons supprimer d'un ancien commit. Nous appuyons sur
sur le commit pour afficher ses fichiers, puis sur
sur un fichier pour concentrer le correctif, puis sur
pour ajouter la ligne de commentaire à notre correctif personnalisé, puis sur ctrl+p
pour afficher les options du correctif personnalisé. ; en sélectionnant pour supprimer le correctif du commit actuel.
Apprenez-en plus dans le didacticiel Youtube Rebase magic.
Supposons que vous soyez sur une branche de fonctionnalités qui était elle-même dérivée de la branche de développement et que vous avez décidé que vous préférez bifurquer de la branche principale. Vous avez besoin d'un moyen de rebaser uniquement les validations de votre branche de fonctionnalités. Dans cette démo, nous vérifions quel était le dernier commit sur la branche de développement, puis appuyons sur shift+b
pour marquer ce commit comme notre commit de base, puis appuyons sur r
sur la branche master pour le rebaser dessus, en ne faisant passer que les commits de notre branche de fonctionnalité. Ensuite, nous poussons nos modifications avec shift+p
.
Vous pouvez annuler la dernière action en appuyant sur 'z' et refaire avec ctrl+z
. Ici, nous supprimons quelques commits, puis annulons les actions. Annuler utilise le reflog qui est spécifique aux commits et aux branches afin que nous ne puissions pas annuler les modifications apportées à l'arborescence de travail ou au stockage.
Plus d'informations
Lors de l'affichage du graphique de validation dans une fenêtre agrandie (utilisez +
et _
pour faire défiler la taille de la fenêtre), le graphique de validation s'affiche. Les couleurs correspondent aux auteurs du commit et, à mesure que vous parcourez le graphique, les commits parents du commit sélectionné sont mis en surbrillance.
Si vous appuyez sur shift+w
sur un commit (ou branch/ref), un menu s'ouvrira qui vous permettra de marquer ce commit afin que tout autre commit que vous sélectionnez soit comparé à lui. Une fois que vous avez sélectionné le deuxième commit, vous verrez la différence dans la vue principale et si vous appuyez sur
vous verrez les fichiers de la différence. Vous pouvez appuyer sur shift+w
pour afficher à nouveau le menu différentiel et voir des options telles que l'inversion de la direction du différentiel ou la sortie du mode différentiel. Vous pouvez également quitter le mode différentiel en appuyant sur
.
La plupart des packages ci-dessus sont gérés par des tiers, alors assurez-vous de les vérifier vous-même et confirmez que le responsable est une personne digne de confiance qui assiste à des matchs sportifs locaux et redonne à sa communauté avec des collectes de fonds pour barbecue, etc.
Pour Windows, Mac OS (10.12+) ou Linux, vous pouvez télécharger une version binaire ici.
Normalement, la formule lazygit se trouve dans le noyau Homebrew, mais nous vous suggérons d'appuyer sur notre formule pour obtenir celle fréquemment mise à jour. Cela fonctionne également avec Linux.
Robinet:
brew install jesseduffield/lazygit/lazygit
Cœur:
brew install lazygit
Dernière version construite à partir des versions de github. Robinet:
sudo port install lazygit
Les packages pour Void Linux sont disponibles dans le dépôt de distribution
Ils suivent en amont les dernières sorties
sudo xbps-install -S lazygit
Vous pouvez installer lazygit
en utilisant scoop. C'est dans le seau extras
:
# Add the extras bucket
scoop bucket add extras
# Install lazygit
scoop install lazygit
Les packages pour Arch Linux sont disponibles via pacman et AUR (Arch User Repository).
Il existe deux forfaits. La version stable qui est construite avec la dernière version et la version git qui s'appuie sur le commit le plus récent.
sudo pacman -S lazygit
Les instructions sur la façon d'installer le contenu AUR peuvent être trouvées ici : https://wiki.archlinux.org/index.php/Arch_User_Repository
Les packages pour Fedora/RHEL et CentOS Stream sont disponibles via Copr (Cool Other Package Repo).
sudo dnf copr enable atim/lazygit -y
sudo dnf install lazygit
sudo eopkg install lazygit
LAZYGIT_VERSION= $( curl -s " https://api.github.com/repos/jesseduffield/lazygit/releases/latest " | grep -Po ' "tag_name": "vK[^"]* ' )
curl -Lo lazygit.tar.gz " https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_ ${LAZYGIT_VERSION} _Linux_x86_64.tar.gz "
tar xf lazygit.tar.gz lazygit
sudo install lazygit /usr/local/bin
Vérifiez la bonne installation de lazygit :
lazygit --version
Funtoo Linux a un package lazygit généré automatiquement dans le kit de développement :
sudo emerge dev-vcs/lazygit
Lazygit n'est pas (encore) dans le portage principal de Gentoo, cependant un ebuild est disponible dans la superposition GURU
Vous pouvez soit ajouter la superposition à votre système et installer lazygit comme d'habitude :
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge dev-vcs/lazygit
Le package lazygit est actuellement construit dans devel:langues:go/lazygit.
Pour installer lazygit sur openSUSE Tumbleweed, exécutez :
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/openSUSE_Factory/devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
Pour installer lazygit sur openSUSE Leap, exécutez :
source /etc/os-release
sudo zypper ar https://download.opensuse.org/repositories/devel:/languages:/go/ $VERSION_ID /devel:languages:go.repo
sudo zypper ref && sudo zypper in lazygit
Sur NixOs, lazygit est fourni avec nix et distribué via nixpkgs. Vous pouvez essayer le lazygit sans l'installer avec :
nix-shell -p lazygit
# or with flakes enabled
nix run nixpkgs#lazygit
Ou vous pouvez ajouter lazygit à votre configuration.nix dans la section Environment.systemPackages. Plus de détails peuvent être trouvés via la page de recherche NixOs.
Lazygit peut être installé dans un environnement Flox comme suit.
flox install lazygit
Plus de détails sur Flox peuvent être trouvés sur leur site Web.
pkg install lazygit
apt install lazygit
Les versions publiées sont disponibles pour différentes plates-formes, voir https://anaconda.org/conda-forge/lazygit
conda install -c conda-forge lazygit
go install github.com/jesseduffield/lazygit@latest
Remarque : Si vous obtenez une erreur affirmant que lazygit est introuvable ou n'est pas défini, vous devrez peut-être ajouter ~/go/bin
à votre $PATH (MacOS/Linux) ou %HOME%gobin
(Windows). . À ne pas confondre avec C:Gobin
(qui concerne les propres binaires de Go, pas les applications comme lazygit).
Vous pouvez installer lazygit
en utilisant Chocolatey :
choco install lazygit
Vous pouvez installer lazygit
à l'aide de la commande winget
dans le terminal Windows avec la commande suivante :
winget install - e -- id = JesseDuffield.lazygit
Vous devrez installer Go
git clone https://github.com/jesseduffield/lazygit.git
cd lazygit
go install
Vous pouvez également utiliser go run main.go
pour compiler et exécuter en une seule fois (jeu de mots bien intentionné)
Appelez lazygit
dans votre terminal dans un référentiel git.
$ lazygit
Si vous le souhaitez, vous pouvez également ajouter un alias pour cela avec echo "alias lg='lazygit'" >> ~/.zshrc
(ou quel que soit le fichier rc que vous utilisez).
Vous pouvez consulter la liste des raccourcis clavier ici.
Si vous modifiez le dépôt dans lazygit et que vous souhaitez que votre shell change de répertoire dans ce dépôt en quittant lazygit, ajoutez ceci à votre ~/.zshrc
(ou autre fichier rc) :
lg()
{
export LAZYGIT_NEW_DIR_FILE=~/.lazygit/newdir
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
Ensuite, source ~/.zshrc
et à partir de maintenant, lorsque vous appelez lg
et quittez, vous basculerez vers le répertoire dans lequel vous vous trouviez dans lazygit. Pour remplacer ce comportement, vous pouvez quitter en utilisant shift+Q
plutôt que simplement q
.
Voir les documents
Consultez les documents de configuration.
Voir les documents
S'il manque une fonctionnalité à lazygit, il y a de fortes chances que vous puissiez l'implémenter vous-même avec une commande personnalisée !
Voir les documents
Lazygit prend en charge Gitflow si vous l'avez installé. Pour comprendre le fonctionnement du modèle Gitflow, consultez le message original de Vincent Driessen qui l'explique. Pour afficher les options de Gitflow depuis Lazygit, appuyez sur i
depuis la vue des branches.
Nous aimons votre contribution ! Veuillez consulter le guide de contribution. Pour discuter avec les contributeurs de sujets qui ne sont pas mieux abordés ici dans le dépôt, rejoignez le canal Discord.
Regardez cette vidéo expliquant la création d'une petite fonctionnalité dans lazygit si vous voulez une idée de par où commencer.
Exécutez lazygit --debug
dans un onglet de terminal et lazygit --logs
dans un autre pour afficher le programme et sa sortie de journal côte à côte
Si vous souhaitez soutenir le développement de lazygit, pensez à me parrainer (github égale tous les dons dollar pour dollar pendant 12 mois)
Si vous voulez voir ce que je (Jesse) fais en termes de développement, suivez-moi sur Twitter ou consultez mon blog.
Si vous trouvez que lazygit ne répond pas tout à fait à vos besoins, ceux-ci pourraient être mieux adaptés :