Jump to content

Git/alias

From mediawiki.org
< Git
This page is a translated version of the page Git/aliases and the translation is 100% complete.

Git est un outil puissant avec beaucoup d'options utiles. Saviez-vous que vous pouvez créer un alias pour vos commandes ou pour un ensemble d'options ? Vous n'aurez ainsi plus à écrire de longues lignes de commandes du shell. Voici une collection de quelques alias utiles.

Déclarer un alias

Dans votre ~/.gitconfig ajoutez une section [alias]. Chaque ligne suit le format <tabulation>clé = valeur.

Voici un extrait de code de la section [alias] d'un fichier .gitconfig

[alias]
    short-name = actual (long?) command

Les alias

Si vous voulez obtenir le tout en une seule passe, voici une collection de tous les alias de cette page :

[alias]
	amend     = commit --amend -a
	br        = branch
	branch-cleanup = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -n 1 git branch -d; }; f"
	co        = checkout
	ds        = diff --staged
	di        = diff
	fetchall  = fetch -v --all
	lg = log --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(cyan)<%an>%Creset' --abbrev-commit --date=relative
	l = ! git lg -n25
	log-me    = !UN=$(git config user.name)&& git log --author="\"$UN\"" --pretty=format:'%h %cd %s' --date=short
	log-nice  = log --graph --decorate --pretty=oneline --abbrev-commit
	panic     = !tar cvf ../git_panic.tar *
	st        = status
	wdiff     = diff --word-diff=plain

amend

[alias]
	amend = commit --amend -a
Exemple
git amend

Avec Gerrit il est possible que vous ayez à modifier un ensemble de corrections. Cela signifie généralement qu'il faut corriger les fichiers et ensuite modifier le message de validation précédent. Le flux de travail ressemblerait à :

$ git review -d 1234 // gerrit changeset id
<edit files>
$ git add <files>
$ git commit --amend
<update commit-msg>

Si vous avez seulement changé des fichiers (sans en ajouter de nouveaux), les deux dernières commandes peuvent être regroupées en utilisant git commit --amend -a.

br

[alias]
	br = branch
Exemple
  • git br foo --track origin/foo
  • git br -D some/old/branch

branch-cleanup

[alias]
        branch-cleanup = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -n 1 git branch -d; }; f"

Ceci supprime toutes les références des branches qui ont été complètement fusionnées dans le master (ou toute autre branche que vous aurez spécifiée).

co

[alias]
	co = checkout
Exemple
git co master

ds

[alias]
	ds = diff --staged
Exemple
git ds

Un git diff à plat montre la différence entre la copie de travail (non mise en réserve) et la copie de travail mise en réserve. Dans la plupart des cas, c'est la même chose que le diff entre la copie de travail et la dernière version validée de la branche actuelle (HEAD).

Cependant, si vous avez déjà fait git add et apporté ensuite quelques modifications supplémentaires, alors les modifications au moment du dernier git add ne sont plus affichées dans git diff. Utiliser git diff --staged pour créer un diff entre les modifications déjà en réserve (mais pas encore validées) et le HEAD actuel.

di

[alias]
	di = diff
Exemple
git di

fetchall

[alias]
	fetchall = fetch -v --all
Exemple
git fetchall

Dans ce cas, origin et gerrit sont les mêmes, ce qui est vrai sur la capture d'écran ci-dessus.

Vous pouvez aussi utiliser git remote update

lg

[alias]
	lg = log --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(cyan)<%an>%Creset' --abbrev-commit --date=relative
	l = ! git lg -n25
Exemple
git lg (par défaut, avec la mise en page) ou git l (les derniers 25 uniquement)

log-me

Le nom de l'auteur est sensible à la casse.

[alias]
	log-me  = !UN=$(git config user.name)&& git log --author="\"$UN\"" --pretty=format:'%h %cd %s' --date=short
Exemple
git log-me -n20

log-nice

[alias]
	log-nice = log --graph --decorate --pretty=oneline --abbrev-commit
Exemple
git log-nice -n20

panic

[alias]
	panic = !tar cvf ../git_panic.tar *

Il est parfois possible de ne pas avoir réalisé les bonnes opérations dans git. Vous pensez avoir perdu vos validations, ou quelques chose de similaire. Il y a de fortes chances que les informations soient toujours là, donc la meilleure façon d'agir est de faire une sauvegarde immédiate, avant de risquer de perdre des données.

st

[alias]
	st = status
Exemple
git st

wdiff

[alias]
	wdiff    = diff --word-diff=plain
Exemple
git wdiff