... | ... | @@ -61,16 +61,15 @@ Il est possible de créer un nouveau projet : |
|
|
|
|
|
Ici, pour créer le projet **vierge**, il suffit :
|
|
|
|
|
|
- de lui donner un **nom** (`project name`), ici `gitlab-basics`
|
|
|
- de renseigner une **description** (`project description`)
|
|
|
- de lui donner un **nom** (`project name`), ici `gitlab-bases`
|
|
|
- de spécifier sa **visibilité** (qui peut voir les fichiers, ce qui ne veut pas forcément dire pouvoir les modifier) :
|
|
|
- _private_, accessible uniquement au propriétaire et aux contributeurs qu'il aura autorisé
|
|
|
- _internal_, accessible à tous les utilisateurs du serveur
|
|
|
- _public_, accessible publiquement (sans connexion)
|
|
|
|
|
|
> :bulb:L'usage veut que le dépôt de code soit initialisé avec un fichier `README.md` décrivant ce qu'on peut y trouver. Ce fichier est généré à partir de la description et peut être modifié par la suite. Il est rédigé en utilisant la syntaxe [Markdown](https://daringfireball.net/projects/markdown/) (avec laquelle est aussi rédigé ce wiki :wink:)
|
|
|
> :bulb:L'usage veut que le dépôt de code soit initialisé avec un fichier `README.md` décrivant ce qu'on peut y trouver. Ce fichier est ici auto-généré et peut être modifié par la suite. Il est rédigé en utilisant la syntaxe [Markdown](https://daringfireball.net/projects/markdown/) (avec laquelle est aussi rédigé ce wiki :wink:)
|
|
|
|
|
|

|
|
|

|
|
|
|
|
|
> :bulb: Il est également possible :
|
|
|
>
|
... | ... | @@ -85,7 +84,7 @@ Ici, pour créer le projet **vierge**, il suffit : |
|
|
|
|
|
Une fois le nouveau projet créé, sa page d'accueil est affichée :
|
|
|
|
|
|

|
|
|

|
|
|
|
|
|
La **fenêtre principale** donne des informations générales sur le projet :
|
|
|
|
... | ... | @@ -95,16 +94,16 @@ La **fenêtre principale** donne des informations générales sur le projet : |
|
|
- contenu du répertoire racine du dépôt
|
|
|
- contenu (formatté) du fichier `README.md`
|
|
|
|
|
|

|
|
|

|
|
|
|
|
|
> :bulb: Par convention dans _GitLab_, la branche principale (par défaut) s'appelle `main`. A la création du projet, le fichier `README.md` est inclus dans un premier commit. Le dépôt est dit **_bare_** (brut), il ne contient que l'historique et non les fichiers eux-mêmes. GitLab donne l'illusion que les fichiers sont présents en offrant comme service leur visualisation et leur édition (qui se traduisent par des opérations sur l'historique).
|
|
|
|
|
|
La fenêtre principale permet également quelques actions :
|
|
|
|
|
|
- observer l'historique (cette action est également accessible via le menu latéral (`Repository->Commits` ou `Repository->Graphs`)
|
|
|
- télécharger une archive contenant l'intégralité de la version courante du code
|
|
|
- cloner le dépôt (cf. plus loin)
|
|
|
- ouvrir l'IDE en ligne (_Web IDE_)
|
|
|
- **observer l'historique** (cette action est également accessible via le menu latéral (`Repository->Commits` ou `Repository->Graphs`)
|
|
|
- **télécharger une archive contenant l'intégralité de la version courante du code**
|
|
|
- **cloner le dépôt** (cf. plus loin)
|
|
|
- **ouvrir l'IDE en ligne** (_Web IDE_)
|
|
|
|
|
|
L'ensemble des actions est accessible depuis le **menu latéral**, notamment la configuration du projet (contribteurs, rôles, ...)
|
|
|
|
... | ... | @@ -129,15 +128,22 @@ L'URL permettant d'effectuer le clonage selon l'une ou l'autre des méthodes d'a |
|
|
Depuis le poste de travail, la commande `git clone` permet le clonage du dépôt (ici via `https`) :
|
|
|
|
|
|
```bash
|
|
|
MacBook-Air-749:~ sebastienjean$ git clone https://gitlab.iut-valence.fr/jeans/gitlab-basics.git
|
|
|
Cloning into 'gitlab-basics'...
|
|
|
sebastienjean@MacBook-Air-749 ~ % git clone https://gitlab.iut-valence.fr/jeans/gitlab-bases.git
|
|
|
Cloning into 'gitlab-bases'...
|
|
|
remote: Enumerating objects: 3, done.
|
|
|
remote: Counting objects: 100% (3/3), done.
|
|
|
remote: Compressing objects: 100% (2/2), done.
|
|
|
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
|
|
|
Receiving objects: 100% (3/3), done.
|
|
|
MacBook-Air-749:~ sebastienjean$ cd gitlab-basics/
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ ls -al
|
|
|
```
|
|
|
|
|
|
> :bulb: Contrairement à `git init` qui devait être exécutée depuis un dossier servant de racine du dépôt et devant être préalablement créé, la commande `git clone` crée automatiquement le dossier racine avec le nom du dépôt à cloner.
|
|
|
|
|
|
On observe alors que le dépôt lest bien présent localement (répertoire `.git`) et que le working tree a bien été reconstruit (présence du fichier `README.MD`) :
|
|
|
|
|
|
```
|
|
|
MacBook-Air-749:~ sebastienjean$ cd gitlab-bases/
|
|
|
MacBook-Air-749:gitlab-bases sebastienjean$ ls -al
|
|
|
total 8
|
|
|
drwxr-xr-x 4 sebastienjean staff 128 Jan 23 17:57 .
|
|
|
drwxr-xr-x@ 160 sebastienjean staff 5120 Jan 23 17:57 ..
|
... | ... | @@ -145,8 +151,6 @@ 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
|
|
|
```
|
|
|
|
|
|
> :bulb: Contrairement à `git init` qui devait être exécutée depuis un dossier servant de racine du dépôt et devant être préalablement créé, la commande `git clone` crée automatiquement le dossier racine avec le nom du dépôt à cloner.
|
|
|
|
|
|
### 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`) :
|
... | ... | @@ -161,7 +165,7 @@ MacBook-Air-749:gitlab-basics sebastienjean$ cat .git/config |
|
|
ignorecase = true
|
|
|
precomposeunicode = true
|
|
|
[remote "origin"]
|
|
|
url = https://gitlab.iut-valence.fr/jeans/gitlab-basics.git
|
|
|
url = https://gitlab.iut-valence.fr/jeans/gitlab-bases.git
|
|
|
fetch = +refs/heads/*:refs/remotes/origin/*
|
|
|
[branch "main"]
|
|
|
remote = origin
|
... | ... | @@ -175,7 +179,7 @@ La section `branch` spécifie l'association des branches locales avec les branch |
|
|
L'exécution de la commande `git status` montre aussi, dans le cas d'un clone, **en quoi la branche locale est ou non à jour** (_up to date_, ni en avance ni en retard) avec la branche distante :
|
|
|
|
|
|
```bash
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git status
|
|
|
MacBook-Air-749:gitlab-bases sebastienjean$ git status
|
|
|
On branch main
|
|
|
Your branch is up to date with 'origin/main'.
|
|
|
|
... | ... | @@ -184,11 +188,11 @@ nothing to commit, working tree clean |
|
|
|
|
|
La commande `git log` permet de voir l'historique de façon exhaustive et d'y retrouver les pointeurs :
|
|
|
|
|
|
```git
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git log
|
|
|
commit fd7357b0eda5a17ed4b66b995751219f303a85cd (HEAD -> main, origin/main, origin/HEAD)
|
|
|
```bash
|
|
|
MacBook-Air-749:gitlab-bases sebastienjean$ git log
|
|
|
commit 23b7e5413195e7804fdd5bb7de4fb3efe1f63180 (HEAD -> main, origin/main, origin/HEAD)
|
|
|
Author: Sebastien Jean <sebastien.jean@univ-grenoble-alpes.fr>
|
|
|
Date: Sun Jan 23 10:13:01 2022 +0000
|
|
|
Date: Sun Sep 25 07:18:39 2022 +0000
|
|
|
|
|
|
Initial commit
|
|
|
```
|
... | ... | @@ -210,20 +214,21 @@ Le schéma ci-dessous illustre le résultat du clonage, en montrant les branches |
|
|
|
|
|
#### Ajout d'un commit local
|
|
|
|
|
|
On crée un nouveau fichier `unFichier.txt` à la racine du _Working Tree_ :
|
|
|
On crée un nouveau fichier `unFichier.txt` à la racine du _Working Tree_ (et ici on vérifie sa présence et son contenu) :
|
|
|
|
|
|
```bash
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ cat > unFichier.txt
|
|
|
sebastienjean@MacBook-Air-749 gitlab-bases % cat > unFichier.txt
|
|
|
Une ligne de texte
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ more unFichier.txt
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ ls
|
|
|
sebastienjean@MacBook-Air-749 gitlab-bases % ls
|
|
|
README.md unFichier.txt
|
|
|
sebastienjean@MacBook-Air-749 gitlab-bases % cat unFichier.txt
|
|
|
Une ligne de texte
|
|
|
```
|
|
|
|
|
|
On valide une nouvelle version incluant ce fichier :
|
|
|
|
|
|
```
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git add unFichier.txt
|
|
|
MacBook-Air-749:gitlab-bases sebastienjean$ git add unFichier.txt
|
|
|
MacBook-Air-749:gitlab-basics sebastienjean$ git commit -m "ajout d'un fichier"
|
|
|
[main deebe14] ajout d'un fichier
|
|
|
1 file changed, 1 insertion(+)
|
... | ... | |