Skip to content

Git Github Flow

Victor Haffreingue edited this page Jan 12, 2015 · 6 revisions

Cet article est un résumé d'autres articles sur les "bonnes pratiques" d'utilisation de git/github.

Mots techniques

  • 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.

Règles

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).

Flow

Le flow (pas trouvé d'équivalent français) est la démarche à suivre au moment de coder, plusieurs étapes :

  1. (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.
  2. Se déplacer sur cette branche
  3. Coder
  4. (si on souhaite merger avec la branche develop/master) Créer une pull request, discuter des améliorations, des changements et des bugs
  5. Merger la branche avec sa branche parent

Commandes !

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

Liens

Les indispensables :

En plus :

Clone this wiki locally