Ewen Corre

2025-01-10

TIL #7 - Git, git, git ! Et Neovim, ArchLinux et Hyprland

Attention, voilà un fourre-tout de TIL 🎁

Que signifie -- dans git ?

D'après une réponse complète sur StackOverflow, -- peut signifier plusieurs choses différentes.

En général c'est utilisé pour séparer les arguments des sous-commandes.

Par exemple :

git add .
git commit # commit everything

git commit -- file.py # commit file.py only

C'est très utile pour git log :

git log # log everything
git log -- file.py # log everything related to file.py

Git : trier les branches locales par date de dernier commit

Il m'arrive de passer d'une branche à l'autre pour développer, et de revenir sur une branche que je n'ai pas touchée depuis quelque temps (surtout après les vacances 🙈). Laquelle est-ce, dans cette forêt de branches ?

Il existe deux façons :

git branch --sort=-commiterdate

Ou bien (compatible avec de vieilles version de git) :

git for-each-ref --sort=-committerdate refs/heads/
git for-each-ref --sort=committerdate refs/heads/ --format='%(HEAD) %(align:35)%(color:yellow)%(refname:short)%(color:reset)%(end) - %(color:red)%(objectname:short)%(color:reset) - %(align:40)%(contents:subject)%(end) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))'

Git : comparer deux version d'un fichier directement dans Neovim

J'ai fait des changements à un fichier, ma branche a maintenant plusieurs commits. Je voudrais la comparer à l'état du master/main.

Dans Neovim :

:Git diff ma_branche master -- %

L'équivalent dans un shell :

git diff ma_branche master -- chemin/vers/mon/fichier.py

(on retrouve le -- plus haut)

yay : modifier un PKGBUILD avant d'installer un paquet AUR

En ce moment j'ai un petit souci avec Hyprland, l'environnement de bureau / gestionnaire de fenêtre (sous Arch, btw). Pour essayer d'être le plus à jour possible, j'ai installé la version githyprland-git. Dans AUR, le dépôt d'où on peut installer ces versions *-git, tout est à jour, sauf une dépendance : hyprutils-git. Et donc, rien ne se met à jour sur ma machine. 😭

Une solution : modifier le fichier PKGBUILD, qu'utilise l'outil yay pour installer ces logiciels.

cd tmp
yay -G hyprutils-git # pour télécharger le PKGBUILD
cd tmp && nvim PKGBUILD

On édite le fichier, notamment : - pkgver=0.3.3

puis on installe :

makepkg -si

On peut aussi le faire en une seule commande :

yay --editmenu -S hyprutils-git

Ce qui a pour effet d'ajouter au menu interactif une étape ==> PKGBUILDs to edit?.

Source : https://github.com/Jguer/yay/issues/750#issuecomment-427270953

Post-scriptum : j'ai abandonné et installé la version non -git pour cette fois. 😬

Git : voir l'historique de plusieurs lignes dans un fichier

Mes imports Python sont crades, j'ai envie de voir depuis quand c'est comme ça.

Dans nvim (avec vim-fugitive pour lancer des commandes git dans le mode normal) je peux lancer :

:Git log -L0,15:%

Le % permet d'insérer le nom du fichier courant.


Quelle semaine, les ami·e·s ! 😁