Git 4 - Exercices
Développer de façon collaborative avec la forge logicielle Gitlab
Créer un compte sur Gitlab et pousser un projet
Workflow
- Pour chaque ajout le code sera :
- Ajouté dans une nouvelle branche.
- Poussé sur un projet Gitlab partagé.
- Le code sera revu par la personne qui n’a pas codé grâce à une merge request puis sera fusionnée (merged) dans la branche
master
.
- La personne qui n’a pas codé récupère la dernière version du code grâce à
git pull
Merge
Les fusions de branche peuvent s’effectuer en local sur la machine ou sur la forge logicielle.
Exercice sur Microblog
- Clonez le dépôt “microblog” indiqué par le formateur
- On se propose maintenant de créer une branche pour étendre l’application avec une page supplémentaire “A propos”. Pour ce faire, commencez par créer une branche nommée
about-page
et vous positionner dessus.
- Trouvez comment ajouter une nouvelle page “A propos” dans l’application. Il vous faudra ajouter un controlleur dans
app/main/routes.py
, un template dans app/templates/about.html
, et un nouveau lien dans app/templates/base.html
. Par exemple:
### Dans routes.py
@bp.route('/about')
def about():
return render_template('about.html')
<!-- Dans about.html -->
{% extends "base.html" %}
{% block app_content %}
<h1>About</h1>
This is a simple microblogging app
{% endblock %}
<!-- Dans base.html (à l'endroit approprié) -->
<li><a href="{{ url_for('main.about') }}">{{ _('About') }}</a></li>
- Commitez l’ensemble de ces changements (n’oubliez pas d’ajouter les nouveaux fichiers non-versionnés avec
git add
si besoin !)
Les remotes, les merges, les merge-request
- Rendez-vous sur le dépôt original de microblog, puis forkez le projet à l’aide du bouton en haut à droite de la page
- Ajoutez ce nouveau remote dans votre clone local à l’aide de
git remote add
- Poussez votre branche
about-page
sur votre fork
- Confirmez que vous trouvez bien cette nouvelle branche sur votre fork depuis votre navigateur, puis allez dans la partie “Merge request”. Créez une nouvelle “merge request” en prenant bien soin de sélectionner la branche du formateur (sur le dépôt original !) comme cible.
- Vérifiez que la merge request a bien été crée sur le dépôt du formateur et est en attente de relecture/validation
- Pendant ce temps, le formateur continue de travailler sur sa branche
main
et va bientôt commiter un changement qui va créer un conflit entre main
et votre branche (attendre le signal du formateur ;)). Une fois que c’est fait, vous devriez voir sur la page de la merge request qu’une vérification de mergeabilité effectuée par GitLab est passée au rouge.
- Utilisez
git pull
(ou bien git fetch
et git merge
séparément) pour fusionner la branche du formateur dans la votre, et résolvez le conflit. Poussez ensuite le nouveau commit sur votre branche et validez que la vérification de Gitlab est repassée au vert.
- Le formateur devrait également avoir laissé une petite revue de code contenant une suggestion de changement. Utilisez l’interface de GitLab pour transformer cette suggestion en commit, et synchronisez de nouveau votre branche locale. Vérifiez que la suggestion du formateur est bien présente dans la sortie de
git log
ou dans Git Graph de VSCode.
- Une fois que le formateur a mergé votre merge-request (ou celle d’un.e camarade !), re-synchronisez votre dépôt local ainsi que votre fork.
Exercices sur Learning Git Branching
- Sur Learn Git branching, cherchez la section “Remote” et lancez “Push & Pull – dépôts gits distants !” (ou bien
level remote1
)
Ressources