|
|
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` |
|
|
|
|
|
[//]: 
|
|
|
|
|
|
## 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
|
... | ... | |