4 nov. 2021 15:17:12 Thomas Dumont avatar

Normes de gestion des branches GIT

Git Logo

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.

GIT Workflow

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

  1. Sur github, forker le dépôt Lutèce du plugin
  2. 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>
  3. Pousser la branche JIRA-NNN sur le dépôt utilisateur distant
    $ git push myFork JIRA-NNN
  4. 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