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

Normes de gestion des branches GIT

Git Logo

Table des matières

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 possédez 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éveloppements se font sur la branche feature. La branche est partagée sur le repository origin.

Développement 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, fusionner 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 correspondant 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 utilisateur sur GitHub, créer la pull request <dépôt utilisateur>// vers <dépôt lutece-platform>//develop