Git

Trucs et astuces

 

Description : Trucs et astuces Git

Niveau requis : débutant (avec une première expérience Git)

Temps : ~ 20 min

Pour commencer

git <command> -h

Conseil 1 : apprenez Git en ligne de commande

Conseil 2 : RTFM

Configurer Git

git config --list
user.name=Yann Moisan
user.email=xxx@gmail.com

Vérifier son identité

Options courantes

color.ui=true
push.default=simple
merge.tool=vimdiff
merge.stat=true
url.https://.insteadof=git://
mergetool.keepbackup=false

sauvegardé dans le fichier ~/.gitconfig

alias.st=status -sb
alias.ci=commit
alias.br=branch
alias.co=checkout
alias.df=diff
alias.lg=log -p
alias.lg1=log --pretty=format:'%h - %an, %ar : %s'
alias.lg2=log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
alias.who=shortlog -sne
alias.oneline=log --pretty=oneline --abbrev-commit --graph
alias.changes=diff --name-status
alias.dic=diff --cached
alias.diffstat=diff --stat
alias.latest=for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'
alias.ds=diff --staged

Git permet de configurer des alias :

à privilégier par rapport aux alias du shell

branch.master.rebase=true
branch.develop.rebase=true

Rebase auto pour certaines branches

Shell

Vérifiez que la completion est bien configurée

git co<Tab>

Utilisez Zsh

Utilisez un super prompt (ex: avec prezto)

nom de la branche et indicateur de statut à droite

Çà fonctionne même avec les options…

✭ stash
◼ untracked
✱ not staged
⬆ need to push
✚ staged to commit
═ merge en cours

Tig

tig est un outil en mode texte, clavier-friendly, basé sur ncurses, pour interagir avec Git

h : affiche l'aide

 

Par défaut, tig affiche la vue historique

j/k permet de se déplacer dans les commits

<Enter> affiche le détail d'un commit

 

Vue statut (avec s)

pour préparer les commits

permet de stage / unstage

plus simple que l'équivalent git add <file> / git reset HEAD <file>

stage a single line

plus simple que l'équivalent git add -p

 

revert a modification (git checkout -- <file>)

u
1
!

Configurer tig

Comme tous les outils Unix, tig est largement configurable

❯❯❯ cat ~/.tigrc
 bind stash D !?git stash drop %(stash)
 bind stash A !?git stash apply %(stash)
tig blame <file>

Blame

Branches

Comparer 2 branches

Comparer 2 branches (encore plus fort)

pas besoin de se souvenir de l'ordre

 

git log --oneline --left-right master...experiment
git log --oneline master..experiment

affiche les commits de experiment qui ne sont pas accessibles par master

BREAKING NEWS

changez de branches

git checkout -

changez de répertoire

cd -
git branch --merged
git branch --no-merged

Merge

Utiliser Vim comme outil de merge

:diffg RE  " get from REMOTE
:diffg BA  " get from BASE
:diffg LO  " get from LOCAL
git mergetool

Mais aussi…

git-flow : un workflow Git

hub : pour interagir avec GitHub en CLI

git bisect

Pro Git : bouquin très complet, disponible en ligne sur Git.

Made with Slides.com