Clonez le dépôt: git@gitlab.enst.fr:jean-claude.dufourd/learning-merge.git
Il y a plusieurs branches à merger dans main, avec tous les cas entre merge auto, merge simple et merge qui force l’édition à la main.
Les branches sont:
Si vous executez test.py, ça doit toujours marcher. C’est donc le test pour vous assurer que les fusions se sont bien passées.
Les fusions à tester sont :
git checkout main
puis git merge pretty
:
ça devrait être automatique, le commit est souvent automatiquegit merge comment_test
: avec un outil graphique de fusion
(celui que vous préférez) choisissez les modifs à appliquer (à droite ou
à gauche), et là, il faut faire commit une fois que c’est fini.git merge refac_no_comma
: avec un outil graphique de
fusion, vous pouvez faire une partie de la fusion automatiquement, et
vous devez editer la partie centrale si vous voulez vraiment conserver
les changements des deux versions.L’opération complète est montrée dans la prochaine vidéo.
Il est important que vous vous fassiez la main en faisant, avec les outils que vous choisissez, ces fusions sur ce dépot exemple.
Merge request et pull request sont des synonymes.
Ca ne marche pas pareil selon que c’est au sein d’un même projet ou si vous proposez une correction sur un projet dont vous n’êtes pas un des gérants.
Parfois, les dépôts sont initialisés avec la branche main “protégée”.
Cela veut dire que seuls les intégrateurs, qui ont des droits
supplémentaires (maintainer
), peuvent faire commit sur la
branche main. Si c’est le cas et que vous n’êtes pas intégrateurs (juste
developer
), alors vous devez passer par une merge request
pour publier votre travail sur main. Par contre, vous pouvez commit sur
toutes les branches non protégées.
Vous êtes plusieurs à travailler sur un projet. Vous travaillez chacun sur votre branche. A la fin du projet, l’un de vous est chargé de l’intégration du projet, c’est-à-dire de vérifier que tous les bouts du logiciel développés séparément fonctionnent ensemble.
Vous avez fini votre travail sur la branche X. Il ne reste plus qu’à
fusionner la branche X avec la branche main pour intégrer votre partie.
La bonne façon de faire est de créer une merge request
.
Sur gitlab, dans votre projet, barre de gauche, “Merge Requests”, et
dans cette page, New Merge Request
La video sur le transparent suivant vous montre ce processus en pratique.
Je vous propose d’expérimenter en pratique une merge request, ou pull request. C’est une façon de dire au développeur d’un dépôt que vous avez fait une modification que vous pensez utile dans votre dépôt qui est une copie du sien, et vous lui dites où aller chercher la modification.
Faire une copie d’un dépôt s’appelle faire un fork
. Le
dépôt copie a le même nom que le dépôt de départ, donc il doit être dans
un autre espace de nom. Suite à diverses limitations, nous devons faire
cette expérimentation sur github et pas notre gitlab de Télécom.
Le scénario est :
fork
, que j’appellerai D1 et il va être à l’URL
https://github.com/votrelogingithub/ueo_mergereqvotrelogingithuborg
, ceci pour
créer un second espace de nommagefork
de votre fork
de
mon dépôt, que j’appelerai D2 et il va être à l’URL
https://github.com/orgs/votrelogingithuborg/ueo_mergereqVous allez d’abord créer une merge request :
Puis vous allez gérer la merge request :
Maintenant, vous comprenez sans doute pourquoi je vous ai fait faire 2 forks : il faut que vous ayez des droits sur D1 pour pouvoir gérer la merge request, et je ne peux pas vous donner les droits d’accès au dépôt d’origine.
Note: vous pourriez faire tout ceci avec un autre dépôt que le mien comme origine.