Git c’est avant tout le partage, la communion entre les gens et la nature, les oiseaux qui gazouillent tout ça tout ça. Il nous faut malgré tout passer par des services de dépôt distant qui présentent heureusement de belles interfaces web (ce n’est pas parce qu’on est de gauche qu’on doit se l’interdire). Etudions un de ces outils : Gitlab.
Le repo distant
git push, git pull
Vous travaillez actuellement seulement avec un repo local. Pour partager votre travail, vous pouvez utiliser un repo distant. Un repo distant est une copie du repo local (ou inversement). Voyons les comme des repos mirroirs. Les historiques sont conservés des deux côtés. Cependant ce sera plus généralement le repo distant qui sera la référence.
A chaque branche locale correspond une branche mirroir dans le repo distant. La synchronisation n’est cependant pas automatique.
local | distant |
---|---|
main |
origin/main |
topic |
origin/topic |
Etant donné que la branche mirroir est une branche, on pourrait tout à fait utiliser git merge
pour faire la synchro.
Heureusement il existe des commandes spécifiques pour cela : git push
et git pull
.
Gitlab et Github sont des solutions qui permettent d’héberger les repos distants.
TP Créer un projet sur Gitlab et y déposer des données
Créons un projet en ligne
- se connecter à https://gitlab.com
- à côté de son icône de profil, cliquer sur
+
> New project/repository - Choisir Blank project
- Remplir les champs comme suit :
- Project name : test-project
- Project URL : descendre tout en bas de la liste et choisir son user
- Laisser les autres champs
- Vous arrivez sur une page avec une vision générale de votre nouveau projet.
- Notez que le contenu du fichier
README.md
, écrit en markdown, est présenté comme page d’accueil. C’est le fichier utilisé par convention comme fichier d’accueil sur Gitlab et Github
- Notez que le contenu du fichier
Récupérons le projet localement :
- Cliquer sur Code > Clone with HTTPS
- Exécuter les commandes suivantes
git clone [url du projet]
git switch -c test
echo "bonjour" > toto.txt
git add toto.txt && git commit -m "bonjour"
git push
git pull
┌────────────┐┌────────────┐┌──────────┐┌───────────┐
│Working Tree││Staging Area││Local Repo││Remote Repo│
└─────┬──────┘└─────┬──────┘└────┬─────┘└─────┬─────┘
│ │ │ │
│ git add │ │ │
│────────────>│ │ │
│ │ │ │
│ │ git commit │ │
│ │───────────>│ │
│ │ │ │
│ │ │ git push │
│ │ │───────────>│
│ │ │ │
│ │ │ git pull │
│ │ │<───────────│
│ │ │ │
│ git checkout │ │
│<─────────────────────────│ │
│ │ │ │
│ git merge │ │
│<─────────────────────────│ │
Remote repo : 4ème zone de référencement des fichiers
git push
et git pull
permettent de synchroniser le repo local .git
et le repo distant test-project.git
- Se rendre de nouveau sur le projet et sur la branche test. Voir les modifications
Les Merge Requests
Gitlab est le lieu du travail en commun et de l’échange. Toutes les actions techniques qui sont effectuées dans Gitlab peuvent tout à fait l’être localement. Gitlab rajoute des fonctionnalités pour la discussion et l’annotation, les tickets de fonctionnalité, les rapports de bug, etc.
Gitlab est comme un Parlement (je suis pas peu fier de cette analogie):
- les repos qu’il héberge sont des codes de lois
- les développeurs des parlementaires
- les merge request des propositions de lois soumises à l’approbation pour intégrer le texte de référence.
- les annotations des amendements
- un ticket est une demande d’un acteur sur un sujet
Ici nous allons voir la Merge Request qui est une des fonctionnalités les plus utilisées de Gitlab (Pull Request sur Github).
Les Merge requests sont des demandes de merge d’une branche dans une autre.
TP Créer un projet collaboratif et faire des merge requests
- Une personne se rend sur le projet la-fontaine et le fork dans son propre espace
- Ajouter les droits aux autres membres de l’Assemblée
- Tout le monde clone le projet
- Chacun crée sa branche
- Chacun ouvre le fichier
corbeau-vs-renard.md
et chacun change une ligne (une personne la première ligne, une autre celle du milieu, et une troisième la dernière) - Chacun pousse ses modifs
- Chacun se rend sur le projet et crée une merge request depuis sa branche vers la branche
main
en mettant en reviewers les collègues - Après vérifications, chacun valide les merge request des autres
- Chacun fait le merge de la merge request de quelqu’un d’autre
- En local, chacun revient sur son repo, revient sur la branche
main
et récupère la modif du repo distant. - Chacun vérifie que le fichier a bien été modifié.
Bonus:
Vous pouvez ramener les modifs de la branche main
dans votre branche pour continuer le développement dans votre branche sans avoir à en créer une autre.
- revenir sur sa branche
git merge main
La suite
La suite ici : Git - 4 - Bons à savoir