-
Notifications
You must be signed in to change notification settings - Fork 23
LO23 : Git flow
Notre projet LO23 est complexe à versionner du fait que nous sommes (potentiellement) 24 développeurs. Pour éviter une catastrophe, envoyer le code sur le dépôt maître ne sera pas aussi simple qu’un git push. Voilà un exemple de Git Flow fiable et résilient.
Image : TO_INSERT
La première étape à comprendre est l’interaction entre les différents dépôts :
- Un dépôt maître : LO23/BitMusic
- Des dépôts esclaves : les dépôts de chacun, qui sont des forks du dépôt maître.
Le dépôt Git (éventuellement sous GitHub) sur lequel est hébergé le code : /~https://github.com/LO23/BitMusic.git
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 maître. Les admins seront les responsables développements et qualité et seront donc les garants de l'intégrité / de la perfection du code du dépôt maître! Attention donc à votre responsabilité et à ce que vous validez !
Il est aussi possible de récupérer les modifications locales d’un autre développeur via un "git pull".
Allez sur github.com.
ATTENTION : la connexion de git à internet à l'UTC risque de nécessiter une configuration manuelle du proxy (à chaque passage UTC<=>home ...), pour voir comment automatiser ce processus, voir le chapitre "Configuration Proxy" à la fin du doc.
Pour copier le dépôt maître sur son profil local, il suffit d’aller sur github.com/LO23/BitMusic, 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 LO23 <url github du projet>
Très exactement:
git remote add LO23 /~https://github.com/LO23/BitMusic.git
Ne pas mettre votre fork ici mais bien LO23/BitMusic.git !
Pour récupérer les modifications il suffit de faire
git pull LO23 master
Il est conseillé de créer une branche par bugfix/feature dans son dépôt local et de ne faire aucune modifications dans la branche master, elle servira uniquement à mettre a jour le dépôt local. (Votre branche master est celle que vous avez forké du dépôt maître).
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, à partir de là vous pourrez faire une pull request
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 version "production", il suffit d’aller sur la page github du projet (http://github.com/LO23/BitMusic) et de cliquer sur pull request. Il est alors possible de choisir une branche à envoyer et de mettre un commentaire. Attention avant de faire un pull request pensez toujours être à jour, voir la section Manager votre dépôt.
ATTENTION : la connexion de git à internet à l'UTC risque de necessiter une configuration manuelle du proxy (à chaque passage UTC<=>home ...), pour voir comment automatiser ce processus, voir le chapitre "Configuration Proxy" à la fin du doc.
Mettre à jour son dépôt :
git pull LO23 master
Aller dans une branche :
git checkout <maBranche>
Mettre à jour une branche :
git merge master # si la branche master est a jour
git pull LO23 master # sinon, mais déconseillé
Envoyer ses modifs sur github (dépôt personnel, c'est à dire son fork)
git push origin <mabranch> # envoie seulement les commit de la branche choisie
git push # envoie toutes les commits de toutes les branches
#EN RÉSUMÉ:
- Fork
- git add
- Mettre à jour son dépôt
- Créer une branche et coder la feature
- Envoyer ses modifs sur github SUR SON FORK ( git push origin maBranche ## avec origin = github.com/MonLogin/BitMusic! Pour checker ses remote : git remote -v)
- Faire un pull request depuis github
- GOTO 3!
Vous devez avoir deux remote :
LO23 github.com/LO23/BitMusic.git origin github.com/MonLogin/BitMusic.git
Les push sont à faire sur VOS forks pour pouvoir faire une pull request sur LO23/BitMusic.git !
Attention : refaire un git push remote maBranche met à jour une PR déjà ouverte avec cette branche!
Pour (quasi-)automatiser la configuration du proxy, on va utiliser les alias. pour ça utilisez la commande "vim ~/.gitconfig" et appuyez sur la touche "i". sous le tag "[alias]" ajoutez les alias suivants :
[utc = config --global http.proxy http://proxyweb.utc.fr:3128 noproxy = config --global --unset http.proxy]
ce qui donne globalement au minimum ceci :
[[alias] utc = config --global http.proxy http://proxyweb.utc.fr:3128 noproxy = config --global --unset http.proxy]
pour quitter vim en enregistrant les modifications faites échap puis tapez ":x" et entrée. voilà, maintenant en tapant simplement "git utc" vous indiquez à git d'utiliser le proxy de l'UTC et en tapant "git noproxy" vous indiquez à git de ne pas utiliser de proxy.
http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
Merci à payutc pour la base de ce tutoriel (/~https://github.com/payutc)