blog/content/cheat-sheets/git-fr.md

63 lines
2.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
Title: Quelques astuces git
Date: 2019-04-22 17:00
Modified: 2019-04-24 20:08+05:30
Author: Fabrice
Category: antisèches
Tags: git, termtosvg
Slug: git-tricks
Header_Cover: ../images/covers/water.jpg
Summary: Une compilation de commandes git que jutilise ponctuellement
Lang: fr
---
Quelques astuces [git](https://git-scm.com/) 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]({filename}/software/pass-fr.md), 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`:
```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 -
```
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:
```sh
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.
```sh
git gc --aggressive
```
Pour ajouter un changement atomique dans un fichier (de manière interactive):
```sh
git add -p <file>
```
**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
```
Une autre astuce utile: `git commit -v`, qui permet de réviser nos changements avant de commiter.
Une image vaut mieux que mille mots:
<object data="/examples/git-cv.svg" width="100%">Utilisation de git commit -v</object>
Une interface ncurses pour git: [tig](https://jonas.github.io/tig/)
```sh
tig
```