-
Notifications
You must be signed in to change notification settings - Fork 16
git flow
payutc est une application sensible de par les sommes qui transitent dans le système. Pour éviter une catastrophe, envoyer le code sur le serveur ne sera pas aussi simple qu’un git push.
La première étape à comprendre est l’interaction entre les différents dépôts :
- Un dépôt maître : payutc
- Des dépôts esclaves : les dépôts de chacun, qui sont des forks du dépôt maître.
- Le serveur payutc_dev : serveur dit d’intégration, avant de récupérer le code sur la prod, on le récupère sur le serveur d’intégration, qui est une réplique la plus proche possible du serveur de prod. Ça sert à détecter des éventuels bugs lies à des configs serveur impossible à reproduire en local.
- Le serveur payutc : serveur de prod, une fois que le code est estime stable sur le serveur d’intégration, on peut récupérer le code sur le serveur de prod.
Le dépôt de github sur lequel est héberge le code.
Les dépôts des développeurs. Ce sont des forks du dépôt principal. Un dépôt esclave peut récupérer le code du dépôt maître (pull) mais ne peut pas envoyer directement son code (push).
Pour envoyer des modifications locales, il faudra faire un pull request dans github, puis qu’un admin merge le pull request dans le dépôt master.
Il est aussi possible de récupérer les modifications locales d’un autre développeur via un git pull
.
Dit serveur d’intégration. Le dépôt sur le serveur d’intégration est lui aussi un dépôt slave, il ne peut que récupérer le code, pas envoyer des modifications (du moins pas directement). Le but est de faire une dernière validation du code dans un environnement très proche de la prod avant de s’aventurer plus loin dans la jungle.
THE serveur. A part récupérer le code du dépôt maître il ne se passe pas grand chose ici.
Go github.com.
Pour copier le dépôt maître sur son profile local, il suffit d’aller sur github.com/payutc/, puis de cliquer sur le bouton ‘fork’. Pour pouvoir récupérer les motifs envoyées par les autres développeurs sur le dépôt maître, il faut ajouter dans les remote le dépôt maître :
git remote add payutc <url github du projet>
Exemple :
git remote add payutc https://github.com/payutc/server.git
Pour récupérer les modifications il suffit de faire
git pull payutc master
Il est conseiller de créer une branche par bugfix/feature dans le dépôt local et de ne faire aucune modifications dans la branche master, elle servira uniquement a mettre a jour le dépôt local.
git branch <nouvelleBranche> # Créer une branche
git checkout <nouvelleBranche> # Aller dans une branche
git checkout –b <nouvelleBranche> # equivalent des 2 commandes précédentes
git push origin <maBranche> # envoyer sa branche sur github
Pour faire un pull request et ainsi signaler au reste des développeurs que nos modifications sont prêtes a être intégrées dans la prod, il suffit d’aller sur la page github du projet (http://github.com/payutc/) et de cliquer sur pull request. Il est alors possible de choisir une branche à envoyer et de mettre un commetaire. Attention avant de faire un pull request pensez toujours être à jour, voir la section Manager votre dépôt.
Mettre à jour son dépôt :
git pull payutc master
Aller dans une branche :
git checkout <maBranche>
Mettre à jour une branche :
git merge master # si la branche master est a jour
git pull payutc master # sinon, mais déconseillé
Envoyer ses modifs sur github (dépôt personnel)
git push origin <mabranch> # envoie seulement les commit de la branche choisie
git push # envoie toutes les commits de toutes les branches
Envoyer ses modifs sur le dépôt maître :
- Mettre à jour son dépôt
- Mettre à jour sa branche
- Envoyer ses modifs sur github
- Faire un pull request depuis github
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging