Skip to content

Commit add53b5

Browse files
committed
ajouts suite aux cours de mars 2022
1 parent 958bb0b commit add53b5

14 files changed

+113
-6
lines changed

00-git.md

+30-1
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,47 @@ permalink: index.html
88
99
<img src="img/git-basics/git-logo.png" alt="Logo de Git" style="width: 300px;">
1010

11-
**Git** est un logiciel de *gestion de versions* décentralisé, créé en 2005 par Linus Torvalds (le créateur de Linux). C'est un logiciel libre, sous licence GPL. Il existe des versions pour toutes les plateformes, y compris MacOS. Le site officiel de documentation est [git-scm.com](https://git-scm.com).
11+
### Qu'est-ce que Git ?
12+
13+
**Git** est un logiciel de *gestion de versions* décentralisé. C'est un puissant outil de collaboration, indispensable dans tous les types de projets informatiques.
14+
15+
### D'où vient GIT ?
16+
17+
Git a été créé en 2005 par [Linus Torvalds](https://fr.wikipedia.org/wiki/Linus_Torvalds) (le créateur de Linux). C'est un logiciel libre, sous licence GPL. Il existe des versions pour toutes les plateformes, y compris MacOS. Le site officiel de documentation est [git-scm.com](https://git-scm.com).
18+
19+
### À quoi sert Git ?
1220

1321
Voici quelques-uns des avantages que Git apporte:
1422

1523
- Permet à un grand nombre de collaborateurs de travailler sur un même projet, en offrant une bonne gestion des modifications.
1624
- Permet de synchroniser un projet entre plusieurs collaborateurs, en ayant l'assurance que tous les fichiers soient à jour.
1725
- Permet d'avoir un historique précis de tous les changements et modifications d'un projet. Cela permet de clarifier les questions récurrentes: "Où est la dernière version du fichier X?" et "Qu'est-ce qui a été changé entre les révisions 41 et 42"?.
1826

27+
Git a été inventé pour gérer des projets informatiques – du code. Mais ses avantages ont aussi été utilisés pour :
28+
29+
- écrire de la documentation
30+
- gérer des documents légaux comme [les textes de loi](http://bundestag.github.io/gesetze/) du gouvernement d'Allemagne
31+
- des données médicales, comme p.ex. [les données Covid](https://github.com/openZH/covid_19) (direction de santé du canton de Zurich)
32+
- Git est très utilisé dans le domaine du design typographique. Exemples: chez Google Fonts, chaque fonte est gérée dans Github.
33+
34+
## Travailler avec Git
35+
1936
Git est à la base un outil "en ligne de commande". Afin d'avoir un meilleur confort d'utilisation, il existe divers logiciels offrant une interface graphique.
2037

2138
Voir [les logiciels](logiciels.html)
2239

2340
Il existe également des services en ligne (comme GitHub) permettant d'héberger des projets Git, afin de faciliter la collaboration et d'avoir une sauvegarde en ligne.
2441

2542
Voir [GitHub et autres hébergements](github.html)
43+
44+
45+
#### Ce que Git ne fait pas très bien:
46+
47+
La gestion de données "binaires", des fichiers audio (WAV, MP3...) ou vidéo (MP4, MOV...).
48+
49+
Il existe des solutions comparables à Git pour certaines applications:
50+
51+
- [Abstract](https://www.abstract.com/), pour le versionnage et la collaboration dans le design d'interfaces. Gère les formats Sketch et Adobe XD.
52+
- [Frame.io](https://frame.io/) - "cloud-based collaboration platform" pour la vidéo.
53+
- [Perforce Helix Sync](https://www.perforce.com/products/helix-core-apps/helix-sync) - "the game and media standard for version control". Pour des logiciels Maya, 3ds Max, Photoshop, dans le domaine du jeu vidéo et de la production virtuelle.
54+
- [Alienbrain](https://www.alienbrain.com/) - pour "les principaux outils artistiques en 3D et en 2D": Unreal Engine, Autodesk 3DS Max, Autodesk Maya, Adobe Photoshop. Vise les industries du jeu vidéo, de l'architecture, de l'ingénierie.

06-bases.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
layout: page
3+
title: Bases
4+
permalink: bases.html
5+
---
6+
7+
8+
## Comment fonctionne Git ?
9+
10+
Git est un logiciel pouvant fonctionner en ligne de commande, on lui "parle" en utilisant des commandes, telles que `pull`, `push`, `clone`, `add`, `commit`...
11+
12+
Le principe:
13+
14+
1. En utilisant des commandes Git, on enregistre des "snapshots" qui conservent l'état du projet à un point précis.
15+
2. On synchronise les modifications locales avec un serveur distant. Git s'occupe de fusionner les modifications.
16+
17+
### La notion de commit
18+
19+
La commande **git commit** est centrale dans Git: c'est cette commande qui crée un nouvel "instantané" de l'état de votre projet, dans son intégralité.
20+
21+
Comme le dit David Demaree dans *Git for Humans*:
22+
23+
- Un commit enregistre les modifications apportées aux fichiers figurant dans la base de données de Git: il indique par exemple qu'un fichier est passé de la version A à la version B.
24+
- Chaque commit est autonome: il ne référence pas seulement ce qui a changé, mais aussi tout ce qui compose l'état de votre projet à un moment donné.
25+
26+
### Les états des fichiers
27+
28+
Le livre "*[Pro Git](https://git-scm.com/book/fr/v2)*" donne une bonne explication des "trois états" dans lesquels peuvent se trouver les fichiers:
29+
30+
Git gère **trois états** dans lesquels les fichiers peuvent résider : `modifié`, `indexé` et `validé`.
31+
32+
- **Modifié** (*Modified*) signifie que vous avez modifié le fichier mais qu’il n’a pas encore été validé (*committed*).
33+
- **Indexé** (*Staged*) signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu’il fasse partie du prochain instantané du projet.
34+
- **Validé** (*Committed*) signifie que les données sont stockées en sécurité dans votre base de données locale.
35+
36+
Ceci nous mène aux **trois sections principales** d’un projet Git : le **répertoire de travail** (*working directory*), la **zone d’index** (*staging area*) et le **répertoire Git** (*Git directory*).
37+
38+
![Les trois zones, selon Pro Git](img/git-basics/areas.png)
39+
40+
- Le **répertoire de travail** (*working tree* ou *working directory*) : votre espace de travail, sur votre ordinateur. En langage Git: "c'est une extraction unique d’une version du projet. Ces fichiers sont extraits depuis la base de données compressée dans le répertoire Git et placés sur le disque pour pouvoir être utilisés ou modifiés".
41+
- La **zone d’index** (*staging area*). On l’appelle aussi des fois la zone de préparation. On y ajoute des fichiers avec la commande "git add": ils sont désormais indexés. Cette zone stocke tout ce qui fera partie du prochain instantané (commit). La zone d'index n'est pas synchronisée ni partagée, elle n'existe que sur votre ordinateur.
42+
- Le **répertoire Git** (*Git directory*) est l’endroit où Git stocke les méta-données et la base de données des objets de votre projet. C’est la partie la plus importante de Git, et c’est ce qui est copié lorsque vous clonez un dépôt depuis un autre ordinateur.
43+
44+
On pourrait encore ajouter deux sections:
45+
46+
- Le **répertoire Git distant** (remote): il s'agit du serveur, par exemple sur Github (ou Gitlab, Framagit).
47+
- Le **stash** : des modifications "mises de côté". Permet de sauvegarder temporairement des changements apportés à votre copie de travail pour que vous puissiez effectuer d'autres tâches, puis revenir et les réappliquer par la suite.
48+
49+
![Représentation des états, espaces et commandes](img/git-basics/commandes-git.jpg)
50+
51+
L’utilisation standard de Git se passe comme suit :
52+
53+
1. vous modifiez des fichiers dans votre répertoire de travail (état = modifié).
54+
2. vous **indexez** (*stage*) les fichiers modifiés, ce qui ajoute des instantanés de ces fichiers dans la zone d’index (état = indexé).
55+
3. vous **validez** (*do a commit*), ce qui a pour effet de basculer les instantanés des fichiers de l’index dans la base de données du répertoire Git (état = validé).

25-github-publier.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Créer un projet
44
permalink: github-publier.html
55
---
66

7-
**Comment créer un projet sur GitHub?**
7+
## Comment créer un projet sur GitHub ?
88

99
Voici la méthode avec l'application GitHub Desktop:
1010

@@ -24,6 +24,25 @@ Github va vous dire "This folder is not a repository" ... c'est normal!
2424

2525
Pour cela, faites un clic-droit sur l'un de ces fichiers. Dans le menu contextuel, choisissez "Ignore all .indd files" (pour ne pas prendre en compte les fichiers InDesign, par exemple).
2626

27+
Le fichier `.gitignore` est un fichier optionnel, situé à la racine de votre projet, qui permet de désigner tout ce que Git doit "ignorer".
28+
29+
Cela comprend généralement des fichiers temporaires créés par certains logiciels, ou des fichiers système comme [.DS_Store](https://fr.wikipedia.org/wiki/.DS_Store) (sur MacOS), [Thumbs.db](https://fr.wikipedia.org/wiki/Thumbs.db) ou Desktop.ini (systèmes Windows).
30+
31+
Exemple, [le .gitignore du Repository de Space Grotesk](https://github.com/floriankarsten/space-grotesk/blob/master/.gitignore):
32+
33+
```
34+
# file manager empty files
35+
.DS_Store
36+
.empty
37+
.sparkleshare
38+
# temporary files
39+
*(Autosaved).glyphs
40+
*.vfbak
41+
# minisite files
42+
/docs/node_modules
43+
/docs/package-lock.json
44+
```
45+
2746
### Le premier commit
2847

2948
- Une fois cela fait, effectuez votre premier **commit**. Indiquez un message de Commit (champ *Summary*), obligatoire.

40-branches.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Ces ajouts, qui peuvent introduire des dysfonctionnements, ne vont pas perturber
1414

1515
Une fois qu'un développement expérimental arrive à maturité, on peut l'intégrer dans la version de base. On fera cela en fusionnant la branche expérimentale avec la branche "main", en faisant appel à la fonction "merge".
1616

17+
![Représentation des branches, par Daina Lightfoot](img/git-basics/version-history-header.jpg)
18+
1719
## Fonctions dans l'interface Github Desktop
1820

1921
Dans Github Desktop, le menu "Branch" propose différentes fonctions permettant d'agir sur les branches.
@@ -34,9 +36,11 @@ Dans Github Desktop, le menu "Branch" propose différentes fonctions permettant
3436

3537
## Merge
3638

37-
## Pull Request
39+
(à documenter)
3840

41+
## Pull Request
3942

43+
(à documenter)
4044

4145
## Documentation sur les branches
4246

50-workflow.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ title: Workflow
44
permalink: workflow.html
55
---
66

7-
![](img/memes/shower-github.png)
8-
97
Un workflow Git
108
===
119

@@ -19,7 +17,7 @@ Une méthodologie Git pour projets de design, proposée par [Mathieu Dutour](htt
1917
* Faites une "pull request" de votre branche vers la branche principale ("main").
2018
* Voilà! Vos collaborateurs peuvent voir vos modifications, faire des commentaires, et les approuver. Une fois approuvés, faire un "merge" de votre "pull request".
2119

22-
![Instructions en cas d'incendie, trouvées dans un laboratoire du CERN (via Cassandre Poirier-Simon)](img/git-folklore/fire-git-commit-push.jpg){:id: .large-image}
20+
![](img/git-basics/git-workflow-pull-request.jpg)
2321

2422
### Mettre à jour une branche
2523

70-terminologie.md

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Voici quelques-uns des termes fondamentaux du système Git:
2020

2121
**Merge** (fusionner) : *combining two branches*. Une action critique: le "merge" est le fusionnement de deux versions d'un projet (branche alternative vers branche principale). Si cela se passe bien, les modifications de la branche A seront proprement intégrées par la branche B. Si cela se passe mal, vous pouvez rencontrer un "merge conflict".
2222

23+
![](img/memes/git-Merge.gif)
24+
2325
**Rebase** (rembobiner) : *apply any commits of current branch ahead of specified one*.
2426

2527
**Branch** (branche) : *create a new branch at the current commit (a movable label that points to a commit)*.

img/abstract/commit-changes.jpg

227 KB
Loading
Loading

img/git-basics/areas.png

16.9 KB
Loading
79.7 KB
Loading
Loading
147 KB
Loading

img/memes/git-Merge.gif

1.81 MB
Loading

img/websites/GitHub-pages-website.jpg

255 KB
Loading

0 commit comments

Comments
 (0)