Alice et Bob commencent à collaborer avec Git sur un unique dépôt dans une branche unique

paramétrages en vue de collaborer

Le but de Git est de collaborer. Faisons donc travailler ensemble Alice et Bob (et Gustave si besoin) dans un projet

Dépôt initial et invitations

Alice a créé un dépôt initial sur Gitlab qui s’appelle monprojet. Elle va inviter Bob sur son projet en tant que developer (droit de lecture et écriture) ou maintainer (tous les droits).

Bob clone le projet d’Alice

Bob va faire un clone du dépôt d’Alice sur Gitlab, pour obtenir une copie locale :

git clone https://gitlab.com/alice/monprojet.git

remotes

  • Bob possède donc un remote origin correspondant au dépôt de référence d’Alice.

  • Il peut le vérifier avec la commande git remote -v

Bob peut maintenant collaborer avec Alice sur ce dépôt commun.

Réalisation d’une fonctionnalité par Alice

  • Alice prend une chose à réaliser (item de backlong) et implémente le code nécessaire

  • Alice fait les tests et vérifie que ça marche

  • git commit -am \"Message de commit\"

Alice pousse son main sur son remote

git push -u origin main

Bob collabore avec Alice

Bob fait d’abord comme Alice pour paramétrer son git et son dépôt local. Bob et Alice vont travailler tout d’abord sur la branche main. Cela peut sembler plus simple mais en fait on va passer rapidement à un travail dans des branches spécifiques à chaque tâche et utiliser des Merge Request (MR ou Pull Requests, PR sur Github) :

Git avec les branches

car c’est plus clair et finalement pas plus compliqué ! mais n’allons pas trop vite …

Bob met à jour son dépôt local avec la dernière version du projet

git pull

Bob réalise à son tour une fonctionnalité décrite dans un item de backlog

git commit -m "fonctionnalité XXX réalisée"
git push -u origin main

puis informe Alice qu’elle peut récupérer le code correspondant

Alice récupère le travail de Bob

git pull

Ce qui peut-être fait en deux temps également :

  • Alice fetche le main de Bob pour se mettre à jour :

git fetch Bob main
  • puis fusionne le code concerné (après l’avoir éventuellement contrôlé)

git merge Bob/main