2019-04-23 18:04:46 +00:00
---
Title: Quelques astuces git
Date: 2019-04-22 17:00
2019-04-24 15:28:08 +00:00
Modified: 2019-04-24 20:08+05:30
2019-04-23 18:04:46 +00:00
Author: Fabrice
2019-04-25 08:50:04 +00:00
Category: antisèches
2019-04-23 18:04:46 +00:00
Tags: git, termtosvg
Slug: git-tricks
Header_Cover: ../images/covers/water.jpg
2019-04-24 06:34:03 +00:00
Summary: Une compilation de commandes git que j’ utilise ponctuellement
2019-04-23 18:04:46 +00:00
Lang: fr
---
2019-04-24 06:34:03 +00:00
Quelques astuces [git ](https://git-scm.com/ ) que j’ utilise de temps en temps que j’ oublie tout le temps…
2019-04-23 18:04:46 +00:00
**Attention:** Je ne suis pas un exemple à suivre comme utilisateur de git, et mes manières sont parfois un peu crues.
2019-04-24 16:39:24 +00:00
Récemment, la majorité de mes commits sont dues à [pass ]({filename}/software/pass-fr.md ), et donc la plupart du temps, je suis en train de réparer mes propres erreurs.
2019-04-23 18:04:46 +00:00
Remettre la branche master `master` sur la branche distante `origin/master` :
```sh
git checkout origin/master -B master
```
Aller au commit précédent où on avait checkout (de manière similaire à `cd -` ) :
```sh
git checkout -
```
2019-04-24 06:34:03 +00:00
Retrouver les commits disparus, c’ est très utile lorsqu’ on a envie de `cherry-pick` un commit orphelin qu’ on a oublié il y a quelque temps :
2019-04-23 18:04:46 +00:00
```sh
git log --graph --reflog
```
2019-04-24 06:34:03 +00:00
Quelques explications s’ imposent : `--graph` montre l’ arbre 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.
2019-04-23 18:04:46 +00:00
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.
2019-04-24 06:34:03 +00:00
C’ est censé se faire tout seul, mais pas assez souvent selon mes standards.
2019-04-23 18:04:46 +00:00
```sh
git gc --aggressive
```
Pour ajouter un changement atomique dans un fichier (de manière interactive):
```sh
git add -p < file >
```
2019-04-24 15:28:08 +00:00
**Unsafe:** pour réécrire le passé en supprimant un fichier (par exemple si on a commité un donnée *sensible* ):
```sh
git filter-branch --prune-empty --tree-filter "rm -f '< fichier > '" HEAD
git push --force
```
2019-04-23 18:04:46 +00:00
Une autre astuce utile : `git commit -v` , qui permet de réviser nos changements avant de commiter.
Une image vaut mieux que mille mots :
2019-04-24 08:56:01 +00:00
< object data = "/examples/git-cv.svg" width = "100%" > Utilisation de git commit -v< / object >
2019-04-23 18:04:46 +00:00
Une interface ncurses pour git : [tig ](https://jonas.github.io/tig/ )
```sh
tig
```