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