-
Notifications
You must be signed in to change notification settings - Fork 1
Git Github Flow
Cet article est un résumé d'autres articles sur les "bonnes pratiques" d'utilisation de git/github.
-
Add : prend en consideration un ou des fichiers pour le prochain commit.
-
Commit : point de repère dans le temps, photographie des fichiers du projet à un moment donné.
-
Push : envoyer les modifications locales sur le serveur (ici github).
-
Pull : recevoir les modifications du serveur en local.
-
Branch : comme dans un arbre : séparation d'une partie du développement du reste du projet.
-
Merge : Rassembler deux branches.
-
Pull Request : "Demande de merge" après modification sur une branche.
Plusieurs règles sont à respecter pour que le projet puisse avancer dans le temps avec cohérence et intégrité.
- La branche de base master ne doit contenir que du code déployable (livrable, testé, propre). Sans pour autant que le projet soit fini (il pourrait y avoir des versions de tests déployables).
- La branche de développement develop sera celle à partir de laquelle chaque développeur pourra créer une branche.
- Toute nouvelle modification doit entrainer la création d'une branche en conséquence.
- Avant tout merge sur la branche, l'équipe doit s'accorder sur l'intégrité du code ajouté et sur son absence de bug (d'ou une ouverture de pull request).
- Il vaut mieux faire trop de branches que pas assez (git/github tiens le choc même avec beaucoup de branches).
Le flow (pas trouvé d'équivalent français) est la démarche à suivre au moment de coder, plusieurs étapes :
- (Si ce n'est pas déjà fait) créer une nouvelle branche avec un nom explicite, la branche parent est soit develop soit une branche ayant déjà été créée.
- Se déplacer sur cette branche
- Coder
- (si on souhaite merger avec la branche develop/master) Créer une pull request, discuter des améliorations, des changements et des bugs
- Merger la branche avec sa branche parent
Pour les adeptes de la ligne de commande, voici comment faire les étapes listées ci-dessus :
Afficher les branches existantes:
$ git branch
* master
Une seule branche, on en crée une nouvelle.
$ git checkout -b branche1
Switched to branch 'branche1'
$ git branch
master
* branche1
On peut faire du travail sur la branche branche1. Une fois les modifications faites on ajoute les fichiers pour le prochain commit et on commit (le plus souvent possible).
$ git add /path/to/file.txt
ou
$ git add .
-> ajouter tout
$ git commit
ou
$ git commit -m "message du commit"
On peut push et pull simplement en précisant le nom de la branche :
$ git push origin branche1
et depuis la branche voulue
$ git pull
Ensuite, on merge la branche créée avec son parent (ne faire que sur des branches perso, pas master ou develop !).
Depuis la branche parent :
$ git merge branche1
Si vous souhaitez garder la branche branche1 après le merge :
$ git merge --no-ff branche1
Si vous souhaitez supprimer la branche branche1 :
$ git branch -d branche1
Une fois tous les commits fait on ouvre un pull request sur github, pour merge sur la branch develop. à compléter avec des images
Les indispensables :
- https://guides.github.com/introduction/flow/index.html
- https://help.github.com/articles/github-flow-in-the-browser/
En plus :