blog/content/cheat-sheets/git-fr.md
2023-10-29 22:51:03 +01:00

3.1 KiB
Raw Blame History

Title Date Modified Author Category Tags Slug Header_Cover Summary Lang
Quelques astuces git 2019-04-22 17:00 2023-05-14 20:00+02:00 Fabrice antisèches git, termtosvg, cli git-tricks ../images/covers/water.jpg Une compilation de commandes git que jutilise ponctuellement fr

Quelques astuces git que jutilise de temps en temps que joublie tout le temps…

Attention: Je ne suis pas un exemple à suivre comme utilisateur de git, et mes manières sont parfois un peu crues. Récemment, la majorité de mes commits sont dues à pass, et donc la plupart du temps, je suis en train de réparer mes propres erreurs.

Remettre la branche master master sur la branche distante origin/master:

git checkout origin/master -B master

Aller au commit précédent où on avait checkout (de manière similaire à cd -):

git checkout -

Retrouver les commits disparus, cest très utile lorsquon a envie de cherry-pick un commit orphelin quon a oublié il y a quelque temps:

git log --graph --reflog

Quelques explications simposent: --graph montre larbre des commits, ce qui se montre utile pour révéler les feuilles orphelines, et --reflog mets au jour tous nos secrets les plus sordides.

Vous avez peut-être remarqué que vos répertoires git prennent du volume. Pour corriger ça, on peut manuellement appeler le ramasse-miette de notre dépôt. Cest censé se faire tout seul, mais pas assez souvent selon mes standards.

git gc --aggressive

Pour ajouter un changement atomique dans un fichier (de manière interactive):

git add -p <file>

Unsafe: pour réécrire le passé en supprimant un fichier (par exemple si on a commité un donnée sensible):

git filter-branch --prune-empty --tree-filter "rm -f '<fichier>'" HEAD
git push --force

Une autre astuce utile: git commit -v, qui permet de réviser nos changements avant de commiter. Une image vaut mieux que mille mots:

Une interface ncurses pour git: tig

tig

Pour pouvoir lire les diffs plus facilement dans git, je recommande aussi dutiliser delta: https://github.com/dandavison/delta. Ce programme permet de rendre la lecture de la sortie de git diff proche de ce qu'on peut retrouver dans une forge en ligne comme Gitlab en mettant en surbrillance lendroit exact où a eu lieu la différence.

Une fois le paquet installé (sous le nom de git-delta, en tout cas sous archlinux), il suffit de configurer git via:

[core]
  pager = delta
[interactive]
  diffFilter = delta --color-only
[delta]
  navigate = true    # n et N pour se déplacer entre les blocs
  light = true      # pour les terminaux à fond clair
  theme=Monokai Extended Light
[merge]
  conflictstyle = diff3
[diff]
  colorMoved = default

Qui est une configuration très proche de celle proposée sur le dépôt GitHub du projet.