Raccourcis intégrés
Au-delà des alias, Git a une foule de notations abrégées intégrées qui économisent la frappe.
Relatifs à HEAD
HEAD # commit actuel
HEAD~ # un avant
HEAD~1 # aussi un avant
HEAD~5 # cinq avant
HEAD^ # premier parent de HEAD
HEAD^^ # parent du parent
HEAD^2 # second parent (merge)
HEAD^{tree} # l'objet tree de HEAD
Références reflog
HEAD@{1} # HEAD avant son dernier mouvement
HEAD@{yesterday} # HEAD à partir d'hier
HEAD@{2.hours.ago}
main@{push}
Raccourci de branche
git checkout - # branche précédente (comme cd -)
git switch -
git merge @{u} # merge depuis upstream
git rebase @{u}
git push HEAD
Raccourci SHA
git show abc # marche si "abc" est unique
git checkout abc1234
git config --global core.abbrev 12
Raccourci de plage
main..feature # commits dans feature pas dans main
main...feature # différence symétrique
feature^@ # tous les parents de feature
feature^! # feature lui-même, en excluant les parents
Raccourci pathspec
git add :/ # racine du dépôt
git checkout -- :/some-path
git diff -- '*.js'
git diff -- ':!vendor/'
Le séparateur --
git checkout main # branche
git checkout -- main # chemin
git diff master file # ambigu
git diff master -- file # sans ambiguïté un chemin
Flags utiles d'un caractère
git commit -a # ajouter les fichiers suivis et commiter
git commit -am "msg"
git pull -r # rebase au lieu de merge
git push -u # définir upstream
git log -p
git log -S 'string'
git log -G 'regex'
Variables d'environnement utiles
GIT_EDITOR=vim git commit
GIT_AUTHOR_DATE='2024-01-01T12:00:00' git commit -m "backdated"
GIT_PAGER=cat git log
GIT_TRACE=1 git fetch
Raccourcis de configuration
git config --global -e
git config -l
git config --get-regexp '^alias\\.'