Commit 8fff93b6 authored by Dave's avatar Dave
Browse files

remettre les apostrophes pas typographiques

parent 45a11426
......@@ -3,24 +3,24 @@ Bienvenue dans ce TD de formation sur Git/Gitlab
Au cours de ce TD, vous allez apprendre à vous servir du logiciel **Git**, permettant de gérer efficacement des projets informatique et de **GitLab**, une interface web pour administrer et partager des projets sous git.
Au cours de ce TD, si vous avez la moindre question, nhésitez pas à demander à un membre du BR, ou directement à moi (Sosthène Guédon), le créateur de ce TD.
Au cours de ce TD, si vous avez la moindre question, n'hésitez pas à demander à un membre du BR, ou directement à moi (Sosthène Guédon), le créateur de ce TD.
I : Quest-ce que git
I : Qu'est-ce que git
---------------------
Dès quun projet commence à prendre de lampleur, Dropbox marche 5min mais risque rapidement de devenir impossible à maintenir sans les outils spécialisés.
Dès qu'un projet commence à prendre de l'ampleur, Dropbox marche 5min mais risque rapidement de devenir impossible à maintenir sans les outils spécialisés.
Cest pour ça quexiste git.
C'est pour ça qu'existe git.
Git est un gestionnaire de version.
Il permet de séparer chaque modification en *commit* et davoir un historique des modifications, comme on le voit sur cette image des premiers commit de Sigma.
Chaque point correspond à un *commit* et est accompagné dun message décrivant ce qui est modifié.
Il permet de séparer chaque modification en *commit* et d'avoir un historique des modifications, comme on le voit sur cette image des premiers commit de Sigma.
Chaque point correspond à un *commit* et est accompagné d'un message décrivant ce qui est modifié.
![](./images/td-git-br.png)
De plus il permet de gérer la collaboration entre plusieurs individus extrêmement efficacement avec les branches (git est utilisé pour gérer le développement de projets extrêmement importants comptant parfois plusieurs milliers de contributeurs comme Linux, ou Windows).
Les développeurs peuvent créer des branches séparées en parallèle pour, travailler sur les branches sans se gêner les un les autres et mettre leur travail en commun lors dopérations appelées *merge* qui consistent à fusionner les branches.
Les développeurs peuvent créer des branches séparées en parallèle pour, travailler sur les branches sans se gêner les un les autres et mettre leur travail en commun lors d'opérations appelées *merge* qui consistent à fusionner les branches.
II Installation
---------------
......@@ -30,28 +30,28 @@ Pour commencer, il va falloir installer [Git](https://git-scm.com/downloads), il
III La ligne de commande et GitLab
---------------------------------
Dans ce tutoriel, nous allons vous apprendre à se servir de Git depuis la console.
Il existe de nombreuses interfaces graphique que lon ne vous présentera pas.
Il existe de nombreuses interfaces graphique que l'on ne vous présentera pas.
La raison est simple, les commandes sont les mêmes pour tout le monde et permettent de mieux comprendre le fonctionnement de git, et permettent de comprendre les interfaces graphiques facilement.
De plus, la plupart des IDE possèdent des intégrations de git.
Nous allons aussi vous expliquer le fonctionnement de Gitlab, un site web permettant de partager du code sous Git, concurrent libre de GitHub. Il permet aussi davoir accès à un suivi de bug et dautres outils.
Nous allons aussi vous expliquer le fonctionnement de Gitlab, un site web permettant de partager du code sous Git, concurrent libre de GitHub. Il permet aussi d'avoir accès à un suivi de bug et d'autres outils.
Une version de GitLab hébergée sur les serveurs du BR, réservée à lX est [gitlab.binets.fr](gitlab.binets.fr) (normalement lendroit où vous êtes en train de lire ceci) tandis quune version gérée par lentreprise GitLab elle-même, publique est accessible par tous à [gitlab.com](gitlab.com),
Une version de GitLab hébergée sur les serveurs du BR, réservée à l'X est [gitlab.binets.fr](gitlab.binets.fr) (normalement l'endroit où vous êtes en train de lire ceci) tandis qu'une version gérée par l'entreprise GitLab elle-même, publique est accessible par tous à [gitlab.com](gitlab.com),
IV Premier objectif : le Fork
-----------------------------
Chaque projet est accessible sur un dépôt (repository ou repo en anglais).
Certains projets peuvent être séparés en plusieurs dépôt, cest le cas de Sigma par exemple.
Certains projets peuvent être séparés en plusieurs dépôt, c'est le cas de Sigma par exemple.
Pour pouvoir commencer, il va falloir que vous ayez une copie de ce dépôt (repo en anglais) sur votre compte Gitlab.
Cette action sappelle un *fork* et est disponible en haut de la page.
Cette action s'appelle un *fork* et est disponible en haut de la page.
![Fork](images/fork.png)
(Profitez en pour mettre une étoile au tuto avec le bouton *star*, il sagit dun système de mesure de popularité dun dépôt )
(Profitez en pour mettre une étoile au tuto avec le bouton *star*, il s'agit d'un système de mesure de popularité d'un dépôt )
Cliquez sur Fork, vous allez être rediriger vers une page vous demandant où vous souhaitez placer le fork. Ceci est utile si vous avez les droits pour certains groupes, comme le BR et vous permet de créer des projets au nom du groupe.
Normalement seuls votre nom est proposé.
Cliquez dessus puis vous serez redirigé vers la page de votre fork, presque identique à celle-là.
Gardez la page de votre fork ouverte et fermez lancienne, puis redescendez au même de la page du fork, pour maintenant suivre le tutoriel depuis votre fork.
Gardez la page de votre fork ouverte et fermez l'ancienne, puis redescendez au même de la page du fork, pour maintenant suivre le tutoriel depuis votre fork.
V Deuxième objectif : Clone
---------------------------
......@@ -61,19 +61,19 @@ Pour cela copiez le chemin puis faites, dans une console (si ctrl-c ne marche pa
cd chemin/vers/dossier/de/travail
```
Retournez en haut de la page et cliquez sur *clone* (à côté de *fork*) puis copiez le lien de loption https.
Retournez dans linvite de commande et tapez
Retournez en haut de la page et cliquez sur *clone* (à côté de *fork*) puis copiez le lien de l'option https.
Retournez dans l'invite de commande et tapez
```bash
git clone adresse
```
Le nom dutilisateur et le mot de passe demandé sont ceux de Sigma.
Le nom d'utilisateur et le mot de passe demandé sont ceux de Sigma.
Vous pouvez maintenant vous déplacer dans le dossier créé avec
```bash
cd "td-formation-git"
```
Bravo, vous venez deffectuer votre première commande git.
Bravo, vous venez d'effectuer votre première commande git.
Vous pouvez observer la syntaxe classique des commandes git :
```bash
git [commande] [arguments]
......@@ -91,8 +91,8 @@ Dans ce premier exercice, vous allez modifier un fichier puis créer votre premi
Lorsque vous taperez certaines commandes, il est possible que git vous demande des options de configuration, pour avoir votre nom et adresse email.
De plus, dépendant de votre configuration, il est possible que les messages de git soient traduits en français.
Le nom et ladresse que vous lui donnerez seront ceux affichés sur les commits.
Je recommande aussi deffectuer la commande ``` git config core.editor nano ``` pour que git utilise léditeur nano au lieu de vim, léditeur par défaut.
Le nom et l'adresse que vous lui donnerez seront ceux affichés sur les commits.
Je recommande aussi d'effectuer la commande ``` git config core.editor nano ``` pour que git utilise l'éditeur nano au lieu de vim, l'éditeur par défaut.
Commencez par exécuter la commande
......@@ -107,11 +107,11 @@ Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
```
Ceci signifie que rien na été modifié depuis le dernier commit
Ceci signifie que rien n'a été modifié depuis le dernier commit
Vous allez pouvoir faire vos premières modifications.
Pour cela, ouvrez le fichier "exo1/noms_prenoms.txt" dans votre éditeur de texte/code préféré et ajoutez y votre nom et prénom.
Lobjectif est de laissez une trace montrant toutes les personnes ayant effectué ce tutoriel.
L'objectif est de laissez une trace montrant toutes les personnes ayant effectué ce tutoriel.
Refaites
```bash
......@@ -135,7 +135,7 @@ Pour voir la modification, faites
```bash
git diff
```
Cette commande permet dafficher les différences entre létat actuel et le dernier commit
Cette commande permet d'afficher les différences entre l'état actuel et le dernier commit
De mon côté, ceci affiche :
```diff
......@@ -148,7 +148,7 @@ index b2490e0..528d9e5 100644
+Un nouveau nom
```
Ce qui permet de voir que la ligne *Un nouveau nom* viens dêtre ajoutée car il y a un plus devant.
Ce qui permet de voir que la ligne *Un nouveau nom* viens d'être ajoutée car il y a un plus devant.
Les commits
......@@ -179,19 +179,19 @@ git commit -m "Ajoute mon nom"
Bravo!! Vous avez fait votre premier commit, avec pour message "Ajoute mon nom"
Comme vous lavez constaté, le commit sest fait en deux commandes, *add* et *commit*
Comme vous l'avez constaté, le commit s'est fait en deux commandes, *add* et *commit*
Pour avoir un contrôle fin sur les commit, git se sert de 3 "zones" de travail:
- le *working directory*
- la *staging area*
- larbre des commits
- l'arbre des commits
Le *working directory* correspond simplement au dossier dans lequel se trouve votre projet.
Les fichiers et dossiers dans le *working directory* peuvent être modifiés comme nimporte quel autre fichier, sans en informer git.
Les fichiers et dossiers dans le *working directory* peuvent être modifiés comme n'importe quel autre fichier, sans en informer git.
La *staging area* et la zone dans laquelle vous mettez les changements effectués aux fichiers que vous souhaitez qui git garde en mémoire.
Vous y ajoutez des fichiers avec la commande ```git add [nom dun fichier]```
Vous y ajoutez des fichiers avec la commande ```git add [nom d'un fichier]```
Ensuite ```git commit``` prend tout ce qui est dans la *staging area* et en fait un commit.
......@@ -199,7 +199,7 @@ Ceci est expliqué simplement sur ce schéma:
![](./images/staging.png)
Il est maintenant tant de comprendre lutilité des commits.
Il est maintenant tant de comprendre l'utilité des commits.
Vous pouvez faire
```bash
......@@ -209,30 +209,30 @@ git log
qui vous ouvre une interface qui permet de faire défiler la liste des commits (utilisez les flèches pour vous déplacer et q pour quitter).
Le premier devrait être le votre, avec le message que vous venez de mettre.
Chaque commit est accompagné dune ligne de charabia:
Chaque commit est accompagné d'une ligne de charabia:
```
commit 1755910a947f3d717f0bf107aee79939f8075fd0 (HEAD -> master)
```
Cette ligne de charabia est un *hash* qui sert didentifiant unique au commit.
Vous pouvez la copier (Si ctrl+c ne marche pas, cest parce que dans la console, il faut utiliser ctrl+shift+c et ctrl+shift+v pour copier coller).
Cette ligne de charabia est un *hash* qui sert d'identifiant unique au commit.
Vous pouvez la copier (Si ctrl+c ne marche pas, c'est parce que dans la console, il faut utiliser ctrl+shift+c et ctrl+shift+v pour copier coller).
Vous pouvez retourner à un commit avec
```bash
git checkout [insérer hash du commit]
```
Tous les fichiers sont alors retournés à létat dans lequel ils étaient après ce commit.
Tous les fichiers sont alors retournés à l'état dans lequel ils étaient après ce commit.
Pour retourner au dernier commit, faites
```bash
git checkout master
```
Lexercice suivant vous fera comprendre cette commande.
L'exercice suivant vous fera comprendre cette commande.
Ensuite, il vous est possible de "push" votre commit sur GitLab.
Pour linstant, votre commit nest présent que sur votre ordinateur.
La commande pour envoyer vos commits au serveur GitLab sappelle "push".
Pour l'instant, votre commit n'est présent que sur votre ordinateur.
La commande pour envoyer vos commits au serveur GitLab s'appelle "push".
```bash
git push
```
......@@ -245,10 +245,10 @@ EX2
Dans cet exercice, vous allez apprendre à utiliser les branches, la fonctionnalité fondamentale de git pour le travail en collaboration.
Git permet de créer des branches. Chaque branche correspond à un état différent du développement.
Lintérêt est que chaque développeur peut travailler sur une branche correspondant à a fonctionnalité sur laquelle il travaille, sans avoir à se soucier dinterférer avec le travail des autres développeurs.
Une fois que la fonctionnalité est terminée, il suffit de "merge" la branche de fonctionnalité avec la branche de développement principale, en sassurant quil ny a pas de conflits entre les branches et en les corrigeant sil y en a.
L'intérêt est que chaque développeur peut travailler sur une branche correspondant à a fonctionnalité sur laquelle il travaille, sans avoir à se soucier d'interférer avec le travail des autres développeurs.
Une fois que la fonctionnalité est terminée, il suffit de "merge" la branche de fonctionnalité avec la branche de développement principale, en s'assurant qu'il n'y a pas de conflits entre les branches et en les corrigeant s'il y en a.
Voici un exemple de dutilisation des branches pour le développement de sigma:
Voici un exemple de d'utilisation des branches pour le développement de sigma:
![](./images/branches.png)
......@@ -259,7 +259,7 @@ git checkout master
```
master est le nom de la branche principale.
```git checkout``` est la commande permettant de se déplacer dans lhistorique git.
```git checkout``` est la commande permettant de se déplacer dans l'historique git.
Elle permet de visiter un commit précis avec son Hash, mais aussi de visiter une branche en utilisant son nom.
Ainsi, la commande ```git checkout master``` vous fait revenir au dernier commit de la branche master.
......@@ -274,26 +274,26 @@ Vous pouvez vérifier ça avec ```git status```.
Pour pouvoir comprendre les merge, créez une nouvelle branche appelée "temp".
Sur cette branche, ajoutez un fichier appelé temp dans lequel vous pouvez ajouter quelques lignes.
Créez un commit pour cet ajout comme vous lavez appris au premier exo.
Créez un commit pour cet ajout comme vous l'avez appris au premier exo.
Ensuite, passez à la branche exo2 avec ```git checkout exo2``` puis créez un fichier exo2 avec quelques lignes et le commit qui va avec. Ceci permet de simuler deux personnes travaillant sur deux branches séparées.
Il est maintenant temps de "merge" les deux branches.
Pour cela, il suffit dutiliser la commande ```git merge [branche cible]``` depuis la branche sur laquelle vous voulez que le merge soit fait.
Pour cela, il suffit d'utiliser la commande ```git merge [branche cible]``` depuis la branche sur laquelle vous voulez que le merge soit fait.
Dans notre cas, il faut donc faire ```git merge temp```.
Git vous ouvre ensuite léditeur pour écrire le message pour expliquant le merge.
Git vous ouvre ensuite l'éditeur pour écrire le message pour expliquant le merge.
Il est normalement déjà pré-rempli par ```merge branch 'temp' into exo2```.
Voilà, vous savez maintenant comment vous servir basiquement des branches.
GitLab possède pas mal de fonctionnalités, permettant de gérer efficacement le développement.
Si vous essayez de push des commits sur le dépo du BR du TD, vous naurez pas les droits (cest pour cela que vous avez du fork le td pour en avoir une version sur votre compte sur lequel vous avez les droits de modification).
Cependant vous pouvez quand même participer aux développement dautres projets sur GitLab, mais il faut pour cela avoir laccord des des mainteneurs du projet.
Si vous essayez de push des commits sur le dépo du BR du TD, vous n'aurez pas les droits (c'est pour cela que vous avez du fork le td pour en avoir une version sur votre compte sur lequel vous avez les droits de modification).
Cependant vous pouvez quand même participer aux développement d'autres projets sur GitLab, mais il faut pour cela avoir l'accord des des mainteneurs du projet.
Cela se fait via les "Merge Request".
Pour cela, allez sur votre fork du projet.
Allez sur longlet Merge Request, puis faites "new merge request".
Allez sur l'onglet Merge Request, puis faites "new merge request".
Selectionnez comme branche source votre branche master dans laquelle il y a le commit où vous avez ajouté votre nom et dans la branche cible la branche master du BR.
Ajoutez un petit message damour envoyez la merge request.
Ensuite, des membres du BR pourrons laccepter et votre nom sera ajouté à la liste noms_prenoms.txt.
Ajoutez un petit message d'amour envoyez la merge request.
Ensuite, des membres du BR pourrons l'accepter et votre nom sera ajouté à la liste noms_prenoms.txt.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment