Normes de gestion des branches GIT
Branches
Pour les plugins génériques et le core, deux branches permanentes sont utilisées :
- la branche develop est la branche dans laquelle sont faits tous les développements.
- la branche master correspondant au code dans sa version releasée. Aucun commit ne doit être fait sur cette branche. Un merge de la branche develop est fait dans cette branche au moment des releases.
Des branches temporaires peuvent être créées pour des nouvelles fonctionnalités. Leur nom correspond au code de l'évolution JIRA.
Commandes GIT
Pour une petite correction ou évolution
Il n'est pas nécessaire de créer une branche. La modification peut se faire directement sur la branche develop si vous possedez les droits correspondants.
git checkout develop git pull origin develop << réalisation et commit des modifications >> git push origin develop
Pour une correction ou évolution significative
Une branche temporaire feature (où feature désigne le code JIRA de l'évolution ou de la correction) doit être créée. Les développement se font sur la branche feature. La branche est partagée sur le repository origin.
Developpement de la feature
git checkout develop git pull origin develop git checkout -b JIRA-NNN << réalisation et commit des modifications >> git push origin JIRA-NNN
Une fois la feature validée, fusion avec la branche develop
git pull origin JIRA-NNN git checkout develop git pull origin develop --rebase git merge JIRA-NNN git push origin develop
Pour une contribution externe
L'auteur de la contribution doit forker le projet et créer une branche correspond au JIRA de sa contribution. Il pourra ensuite proposer sa contribution par le mécanisme de Pull Request de GitHub
- Sur github, forker le dépôt Lutèce du plugin
- Attacher ce nouveau dépôt utilisateur distant au dépôt local contenant la branche JIRA-NNN
$ git remote add myFork https://github.com/<my_github_user>/<my_forked_repository>
- Pousser la branche JIRA-NNN sur le dépôt utilisateur distant
$ git push myFork JIRA-NNN
- Depuis le dépôt utilistateur sur github, créer la pull request <dépôt utilisateur>/<plugin>/<JIRA-NNN> vers <dépôt lutece-platform>/<plugin>/develop