diff --git a/HowtoGit.md b/HowtoGit.md index 4eb69152..c31a2967 100644 --- a/HowtoGit.md +++ b/HowtoGit.md @@ -1008,4 +1008,10 @@ conflicts = !sh -c 'git status -sb | grep ^UU | sed "s/UU\\ //"' resolve = !sh -c 'git conflicts && $EDITOR $(git conflicts) +\"/<<<<\"' # ouvre les fichiers en conflit dans un éditeur (compatible Vim), positionné au bon endroit -~~~ \ No newline at end of file +~~~ + +### Quitter l'éditeur de texte sans que Git n'exécute l'action liée + +Lorsque Git délègue à l'éditeur de texte la rédaction du message de commit (ou autre édition), si l'éditeur quitte avec un code de sortie 0, alors Git considère que tout va bien et exécute son action initiale (faire un commit par exemple). Si on veut que Git ne fasse pas cette action, il suffit de faire quitter l'éditeur avec un code de sortie > 0. Avec Vim, ça se fait avec la commande `:cq`. + +Exemple concret de cette situation : on veut amender un commit auquel on a ajouté (ou retiré) certains éléments, mais au moment de rédiger le message on se rend compte qu'on en a trop ajouté (ou retiré). Un simple `:q!` dans Vim ne validera pas le message de commit mais validera le commit lui-même. C'est là qu'on peut sortir de Vim et annuler l'action de Git avec `:cq`. \ No newline at end of file