Mon Git flow personnel
Avec les années et les projets, j’ai affiné une manière de bosser avec Git qui me simplifie la vie.
Elle n’est probablement pas parfaite. Mais elle marche parfaitement pour moi, et elle évite pas mal de galères à mes collègues moins à l’aise avec Git. Du coup je la partage ici, en espérant que ça puisse servir.
La base
Je pars toujours de la branche main
.
Je crée une branche de feature avec un nom clair :
git checkout -b feat/ma-feature
Un seul commit
Je fais un seul commit par branche. Avec un message clair et explicite.
Si j’ai besoin de corriger un truc (oubli, feedback de PR, etc.), je ne crée pas un deuxième commit. J’amende celui existant :
git add .
git commit --amend --no-edit
Et je force le push
Puis je force push, pour que l’historique reste propre et linéaire :
git push -f
Toujours rebase, jamais merge
Si entre-temps main
a avancé, je ne merge jamais.
Je rebase ma branche dessus :
git fetch origin
git rebase origin/main
Pourquoi pas de merge ? Parce que :
-
ça évite les commits "Merge branch 'main' into…" qui polluent l’historique
-
ça rend l’historique linéaire et beaucoup plus lisible
-
ça réduit drastiquement les conflits de dernière minute
Résultat
-
Une branche = un commit = un diff clair
-
L’historique reste simple et maîtrisé
-
Les PRs se lisent facilement et se mergent vite
-
Les conflits sont anticipés et isolés
En résumé
Je ne dis pas que c’est la méthode parfaite. Mais elle fonctionne très bien pour moi depuis des années, et elle a fait ses preuves sur pas mal de projets.
Si vous galèrez souvent avec des conflits ou des historiques Git incompréhensibles, ça vaut peut-être le coup d’essayer.