A chaque message de commit doit être associé un préfixe :
Juste après le préfixe, il est possible de préciser le nom de la fonctionnalité impactée entre parenthèses (non obligatoire).
Puis le séparateur “:” doit apparaître.
Et enfin vous devez entrer un message de commit.
Exemples de messages de commit respectant ces conventions :
feat(profile form): add birthdate field
fix(profile form): fix birthdate validity check
refactor: remove console.log
Le nom des nouvelles branches créées doit respecter les règles suivantes :
Commencer par un préfixe précisant le type : “feat/” ou “fix/”
Pourquoi mettre un “slash” après “feat” ou “fix” ?
Cela permet d’avoir un nom de branche lisible qui ressemble à une arborescence de répertoire. Certains logiciels comme Gitkraken utilisent cette arborescence pour regrouper les features et les fixes.
Pourquoi des tirets plutôt que des underscores ?
Dans les normes de nommage les plus utilisées (pour les fichiers par exemple), c’est le tiret qui est privilégié. On reproduit donc ces normes dans le nom des branches.
Branche de prod : master
On crée une branche de développement
git checkout master git checkout -b develop
Pour une nouvelle fonctionnalité, on crée une branche feat/xx en partant de master pour éviter d’embarquer d’autres features qui serait en court de test sur develop
git checkout master git checkout -b feat/nouvelle-fonctionnalité
Pour la faire tester en dev
git checkout develop git merge --no-ff feat/nouvelle-fonctionnalité
Lorsque la feature est terminé, on la merge sur develop et master puis on supprime la branche
git checkout develop git merge --no-ff feat/nouvelle-fonctionnalité git checkout master git merge --no-ff feat/nouvelle-fonctionnalité git branch -d feat/nouvelle-fonctionnalité
Même principe pour les branches hotfix
Si vous avez poussé les branches sur le dépôt distant, n’oubliez pas de les supprimer. Vérifier la liste des branches
git branch -a
Supprimer une branche
git branch -d feat/nouvelle-fonctionnalité
Supprimer une branche sur le dépôt
git push origin --delete feat/nouvelle-fonctionnalité
Renommer une branche
git checkout feat/nouvelle-fonctionnalité git branch -m feat/new git push origin -u feat/new git push origin --delete feat/nouvelle-fonctionnalité
Voir toutes les branches (locales et distantes)
git branch -a
Je veux revenir en arrière de plusieurs commit sur une branche
git checkout feat/new git reset --hard <numéro de commit> git push --force
On pourrait utiliser rebase mais vu que ça réécrit les commits, ça devient le bazard avec le dépôt distant et ça génère beaucoup de conflit
Et on rebase la branch develop pour qu’elle soit raccord avec la prod
git checkout develop git rebase master
Si on veut mettre à jour sa branche feat/xxx, on l’a rebase par rapport à master
git checkout feat/nouvelle-fonctionnalité git rebase master ou git rebase -i master
On peut aussi rebase develop sur master pour être propre
git checkout develop git rebase master
40 problèmes / solutions : https://youtu.be/WhlkrA8emQk?si=GOIyHnzDEAzJmUqy