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><ahref='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`
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*).
-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 :