yamo
developer
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> -hConseil 1 : apprenez Git en ligne de commande
Conseil 2 : RTFM

Configurer Git
git config --listuser.name=Yann Moisan
user.email=xxx@gmail.comVérifier son identité
Options courantes
color.ui=true
push.default=simple
merge.tool=vimdiff
merge.stat=true
url.https://.insteadof=git://
mergetool.keepbackup=falsesauvegardé 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 --stagedGit permet de configurer des alias :
à privilégier par rapport aux alias du shell
branch.master.rebase=true
branch.develop.rebase=trueRebase 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 coursTig
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...experimentgit log --oneline master..experimentaffiche 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-mergedMerge
Utiliser Vim comme outil de merge
:diffg RE " get from REMOTE
:diffg BA " get from BASE
:diffg LO " get from LOCALgit mergetoolMais aussi…
git-flow : un workflow Git
hub : pour interagir avec GitHub en CLI
git bisectPro Git : bouquin très complet, disponible en ligne sur Git.
By yamo
Trucs et astuces Git