Table des matières

Git dev

Convention de nommage

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.

– source: https://medium.com/codeshake/git-placez-le-rebase-au-centre-de-votre-strat%C3%A9gie-de-versioning-9b295e78e6ff

Gestion de branches pour le dev

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’autre feature

git checkout master
git checkout -b feat/nouvelle-fonctionnalité

Pour la faire tester en dev

git checkout develop
git merge feat/nouvelle-fonctionnalité

Si on a un hotfix à faire

git checkout develop
git checkout -b fix/xxx

On peut appliquer directement le hotfix en prod

git checkout master
git merge fix/xxx
git branch -d fix/xxx

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

Mettre en prod sa feature, merger sa branche sur le master

git checkout master
git merge feat/nouvelle-fonctionnalité
git branch -d feat/nouvelle-fonctionnalité

On peut aussi rebase develop sur master pour être propre

git checkout develop
git rebase master

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

Tuto

40 problèmes / solutions : https://youtu.be/WhlkrA8emQk?si=GOIyHnzDEAzJmUqy