createDate | lastUpdateDate | author | keywords |
---|---|---|---|
2018-11-19 |
2019-03-08 |
marco46 |
Git, contribuer, opensource |
Après avoir lu entièrement la documentation, forké le dépôt principal et initialisé votre dépôt local, vous pouvez commencer à écrire du code.
Attention, on n'ajoute jamais de commit sur la branche de collaboration. Si vous voyez une branche master
ou parfois develop
, n'écrivez pas dessus.
Vous devez créer une branche dédiée à vos modifications. Tout ceci est généralement documenté par le projet.
Si vous n'avez pas mis à jour votre dépôt local depuis quelques temps ou que le projet est très actif il faut commencer par récupérer les dernières mises à jour.
Si la branche de collaboration est master
, assurez-vous d'être positionné sur master
(git checkout master
) puis récupérez l'état de cette branche via git pull origin master
.
Créez ensuite votre branche de travail : git checkout -b <nom-de-votre-branche
.
A ce stade vous pouvez librement écrire vos commits.
Une fois terminé, il faut rebaser votre travail. En effet vous avez pu passer plusieurs jours ou semaines à préparer votre contribution, et donc d'autres personnes auront probablement fait avancer master
.
Il convient donc de récupérer leur travail : git checkout master
puis git pull origin master
.
Ceci fait retournez sur votre branche de travail (git checkout <nom-de-votre-branche>
) et rebasez là avec master : git rebase master
.
On peut également rebaser directement sa branche de travail sans tirer master via git rebase origin/master
.
Attention il sera nécessaire de mettre à jour votre représentation locale du dépôt distant au préalable via git fetch origin
.
Si vous avez des conflits fixez les, puis vous pouvez pousser votre branche sur votre fork : git push fork <nom-de-votre-branche>
.
A ce stade, l'outil que vous utilisez pour collaborer vous proposera de créer une Pull Request (si GitHub) ou une Merge Request (si GitLab).
Une fois créée, c'est aux mainteneurs de travailler. Selon comment ils fonctionnent et ont configuré leur projet, le fait d'avoir proposé une contribution a pu déclencher un job dans l'intégration continue. Il convient de vérifier son résultat car si il est en erreur c'est à vous qu'il revient d'effectuer la correction, la Pull Request restera bloquée tant que la correction n'aura pas été effectuée.
Si tout va bien, les mainteneurs vont effectuer une revue de code de votre contribution. Restez attentif ils pourront vous proposer ou exiger des améliorations.
Notez qu'il est rare qu'une contribution (surtout les premières) soit acceptée au premier essai, il ne faut pas s'en offusquer le propre des Pull Request est d'échanger sur la collaboration apportée.
Si tout va bien vos commits seront ajoutés à la branche de collaboration.
Notez également que les mainteneurs demandent parfois de squash
vos commits en un seul, un rebase intéractif suivi d'un git push --force fork <nom-de-votre-branche>
sera nécessaire.
Sinon depuis peu les mainteneurs peuvent squash
les commits eux-mêmes via l'interface web (sur GitHub comme sur GitLab).