Git#

Installation#

Debian#

$ sudo apt-get install git

RedHat#

$ sudo dnf install git

Configuration#

On utilisera le plus souvent le format de commande git config --global [CONFIG]. Cela permet d’écrire la configuration dans le fichier ~/.gitconfig, cela permet d’avoir une configuration qui sera appliqué sur tout les dépôts.

Ne pas préciser –global fera que la confiration sera spécifique au dépôt actif.

Pager (Delta)#

Installation#

$ curl -JOL https://github.com/dandavison/delta/releases/download/0.16.5/git-delta_0.16.5_amd64.deb
$ sudo apt-get install ./git-delta_0.16.5_amd64.deb

Configuration#

$ git config --global core.pager "delta"
$ git config --global interactive.diffFilter "delta --color-only"
$ git config --global delta.navigate "true"  # use n and N to move between diff sections
$ git config --global delta.light "false"  # set to true if you're in a terminal w/ a light background color
$ git config --global merge.conflictstyle "diff3"
$ git config --global diff.colorMoved "default"
$ git config --global delta.line-numbers "true"

Alias#

Les alias Git fonctionnent de façons simimaire aux alias des Schell Unix. Les alias ont deux interets majeurs

  • Raccourcir les commandes Git utilisé au quotidien (checkout, commit, …)

  • Permettre l’usage de fonctionnalité avancé, par exemple la mise en page avancé avec git log.

$ git config --global alias.co "checkout"
$ git config --global alias.br "branch"
$ git config --global alias.ci "commit"
$ git config --global alias.st "status"
$ git config --global alias.unstage "reset HEAD --"
$ git config --global alias.last "log --stat -1 HEAD"
$ git config --global alias.log8 'log --graph --abbrev-commit --decorate --date=relative --format=format:"%C(bold yellow)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(bold white)%s%C(reset) %C(white)- %an%C(reset)%C(bold yellow)%d%C(reset)" --all'
$ git config --global alias.log10 'log --graph --abbrev-commit --decorate --date=relative --format=format:"%C(bold yellow)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(bold white)%s%C(reset) %C(white)- %an%C(reset)%C(bold yellow)%d%C(reset)" --all -30'
$ git config --global alias.log50 'log --graph --abbrev-commit --decorate --date=relative --format=format:"%C(bold yellow)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(bold white)%s%C(reset) %C(white)- %an%C(reset)%C(bold yellow)%d%C(reset)" --all -30'

Editeur (Vim)#

git config --global core.editor vim

Clef SSH#

Pour configurer la clef SSH à utiliser sans modifier sa configuration SSH

# Pour un nouveau repo
$ git clone -c "core.sshCommand=ssh -i ~/.ssh/<private-key>" git@github.com:<org>/<repo>.git

# Pour un repo existant, nous ne mettons pas '--global' dans ce cas car la
configuration est specifique eu repo
$ git config core.sshCommand "ssh -i ~/.ssh/<private-key>"

# Pour verifier
$ git config --get core.sshCommand
ssh -i ~/.ssh/<private-key>