Alice et Bob commencent à collaborer avec Git chacun sur son dépôt sur une seule branche¶
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 reporter (droit de lecture).
Bob fork le projet d’Alice¶
Bob va faire un fork du dépôt d’Alice sur Gitlab, puis cloner son propre fork pour obtenir une copie locale :
git clone https://gitlab.com/bob/monprojet.git
remotes¶
Bob possède déjà un remote : Le sien, origin. Il peut le vérifier avec la commande
git remote -v
il ajoute celui d’Alice :
bob> git remote add alice https://gitlab.com/alice/monprojet.git
puis vérifie ses 2 remotes en tapant
git remote -v
Bob peut maintenant collaborer avec Alice.
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 leur 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) :
car c’est plus clair et finalement pas plus compliqué ! mais n’allons pas trop vite …
Bob configure ses remotes¶
Bob doit avoir 2 remotes :
Le sien, origin qu’il crée au besoin en faisant:
git remote add origin https://gitlab.com/bob/monprojet.git
celui d’Alice qu’il ajoute :
git remote add alice https://gitlab.com/alice/monprojet.git
Bob tape
git remote -v
pour vérifier ses remotesSi il se trompe:
git remote remove alice
Bob récupère le main d’Alice¶
git fetch Alice main
Bob consulte la branche locale correspondant au main d’Alice¶
git branch -av
git checkout Alice/main
puis vérifie que le code d’Alice est correct
Bob revient dans son main¶
git checkout main
Bob merge le travail d’Alice et pousse les modifs dans son dépôt distant¶
git merge Alice/main
git push
Puis detruit si besoin la branche locale d’Alice :
git branch -d Alice/main
Bob invite Alice¶
Bob invite à son tour Alice sur son dépôt Gitlab en tant que reporter
Alice se met à jour¶
Alice ajoute le remote de Bob :
git remote add bob https://gitlab.com/bob/monprojet.git
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