Update Gestion de versions avec hébergement du dépôt sur un serveur GitLab, les bases authored by Sebastien Jean's avatar Sebastien Jean
L'objectif de ce qui suit est de prendre en main la plateforme *GitLab*, permettant l'hébergement de dépôts versionnés avec *git*, et de se familiariser avec les fonctionnalités de base :
- *TBC*
- création d'un projet GitLab
- clonage d'un dépôt (`clone`)
- synchronisation amont d'un dépôt local (`push`)
<small><i><a href='http://ecotrust-canada.github.io/markdown-toc/'>Table of contents generated with markdown-toc</a></i></small>
## Connexion à un compte utilisateur sur le serveur *GitLab* interne de l'IUT de Valence
## Création d'un projet GitLab
La suite décrit la création d'un projet hébergé sur un serveur GitLab (interne ici).
### Connexion à un compte utilisateur sur le serveur *GitLab* interne de l'IUT de Valence
> :warning: Les services fournis par *GitLab* sont rendus disponibles de 2 manières
> - en mode _**Saas**_ (*Software as a Service*, autrement dit sous forme d'un logiciel déployé sur la cloud et accessible via le Web), sur [www.gitlab.com](www.gitlab.com). L'accès est les fonctionnalités offertes sont conditionné par la création d'un compte utilisateur et la souscription d'une offre (gratuite ou payante)
......@@ -41,7 +47,7 @@ Ici, il n'y a qu'un seul projet affiché, associé au *groupe* `INFO-BUT-R1-01`.
> :bulb: Dans *GitLab*, la notion de **groupe** permet de rassembler des projets (ici tous les projets liés aux enseignements dans la ressource *R1.01* du BUT Informatique), et d'y appliquer des éléments de configuration communs.
## Création d'un nouveau projet vierge
### Création d'un nouveau projet vierge
La création d'un nouveau projet est accessible via le menu, l'icone `+` du bandeau supérieur, ou plus simplement à partir du bouton dédié `New Project` sur le tableau de bord.
......@@ -83,7 +89,7 @@ L'usage veut que le dépôt de code soit initialisé avec un fichier `README.md`
[//]: ![GitlabScenarioNewProject](uploads/1c33a75bd45141cb8f5660b0a5ce862a/GitlabScenarioNewProject.png)
## Navigation dans un projet
### Navigation dans un projet
Une fois le nouveau projet créé, sa page d'accueil est affichée :
......@@ -108,7 +114,11 @@ La fenêtre principale permet également quelques actions :
L'ensemble des actions est accessible depuis le menu latéral, notamment la configuration du projet (contribteurs, rôles, ...)
## Clonage du dépôt
## Clonage d'un dépôt distant et synchronisation amont
La suite décrit le clonage d'un dépôt distant (`clone`) et l'envoi de commit locaux à distance (`push`).
### Clonage d'un dépôt distant
L'opération de clonage, comme illustré ci-dessous, permet de créer localement (sur le poste de travail d'un dévéloppeur) un dépôt contenant une copie intégrale de l'historique du dépôt distant et une reconstruction du *Working Tree* correspondant au dernier commit (dépôt *non bare*).
......@@ -147,9 +157,7 @@ drwxr-xr-x 12 sebastienjean staff 384 Jan 23 18:00 .git
-rw-r--r-- 1 sebastienjean staff 54 Jan 23 17:57 README.md
```
## Visualisation de la configuration du dépôt, de l'état et de l'historique
### Configuration du dépôt
### Visualisation de la configuration du dépôt, de l'état et de l'historique
L'affichage de la configuration du dépôt local (fichier `config` dans le dossier caché `.git`) fait apparaitre des sections liées au clonage (`remote`, `branch`)
......@@ -174,8 +182,6 @@ La section `remote` spécifie que ce dépôt local est lié à un dépôt distan
La section `branch` spécifie l'association des branches locales avec les branches distantes. Ici la branche `main` est associée à la branche `main` distante (suivie localement dans `origin/main`) et chaque les évolutions distantes de cette branche seront fusionnées (*merge*) dans la branche locale.
### Etat du dépôt
L'exécution de la commande `git status` montre aussi , dans le cas d'un clone, en quoi la branche locale est ou non en à jour (*up to date*, ni en avance ni en retard) avec la branche distante :
```bash
......@@ -186,8 +192,6 @@ Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
```
### Historique du dépôt
La commande `git log` permet de voir l'historique de façon exhaustive et d'y retrouver les pointeurs :
```git
......
......