You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/course/git/_index.md
+35-11Lines changed: 35 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: "Git: un élément essentiel au quotidien"
2
+
title: "Git: un outil nécessaire pour les data-scientists"
3
3
date: 2020-07-16T13:00:00Z
4
4
draft: false
5
5
weight: 70
@@ -8,22 +8,47 @@ icon: git-alt
8
8
icon_pack: fab
9
9
#linktitle: "Partie 4: Natural Language Processing (NLP)"
10
10
summary: |
11
-
Une partie annexe au cours pour découvrir Git, un langage
12
-
devenu indispensable pour les data-scientists et économistes
13
-
pour stocker et partager des projets Python.
11
+
Une partie annexe au cours pour découvrir `Git`,
12
+
un outil
13
+
devenu indispensable pour les data-scientists
14
+
afin de mener des projets impliquant
15
+
du code `Python`.
14
16
type: book
15
17
---
16
18
17
19
Cette partie du site présente un élément qui n'est pas propre à
18
20
`Python` mais qui est néanmoins indispensable: la pratique de `Git`.
19
21
20
-
Une grande partie du contenu de ce chapitre provient du cours
21
-
[Travail collaboratif avec `R`](https://linogaliana.gitlab.io/collaboratif/git.html).
22
+
Une grande partie du contenu de la partie provient du cours
23
+
[Travail collaboratif avec `R`](https://linogaliana.gitlab.io/collaboratif/git.html)
24
+
ou d'un [cours dédié fait avec Romain Avouac](https://formation.pages.lab.sspcloud.fr/git/20220929-formation-git-dese/#/title-slide).
22
25
26
+
Le chapitre [de présentation de `Git`](/introgit) propose
27
+
une introduction visant à présenter l'intérêt d'utiliser
28
+
cet outil. Une mise en pratique est proposée
29
+
avec [un cadavre exquis](/exogit).
23
30
24
-
# Utilisation de git avec Python
25
31
26
-
### Configurer pycharm pour utiliser le plugin git
32
+
33
+
# Utilisation de `Git` avec `Python`
34
+
35
+
`Git` est à la fois un outil et un langage. Il
36
+
est donc nécessaire d'installer, dans un premier
37
+
temps `Git Bash`, puis de connecter
38
+
son outil préféré pour faire du `Python` (qu'il
39
+
s'agisse de `Jupyter`, `VSCode` ou `PyCharm`).
40
+
41
+
L'un des intérêts d'utiliser une approche _cloud_
42
+
est que l'utilisateur final n'a pas à se préoccuper
43
+
de l'installation de ces différentes briques.
44
+
Les interfaces `Git` sont parfois déjà
45
+
configurées pour faciliter l'usage. C'est le
46
+
cas sur le `SSPCloud`.
47
+
48
+
49
+
# Configuration
50
+
51
+
## Configurer `PyCharm` pour utiliser le plugin `Git`
27
52
28
53
Aller dans `File > Settings > Version Control > Git` pour définir le
29
54
chemin vers lequel `Pycharm` doit trouver
@@ -39,13 +64,12 @@ le sous-dossier `cmd/git.exe`)[^1]
39
64
de mot de passe tapé trop vite, les tentatives de connexion au dépôt distant seront
40
65
systématiquement refusées
41
66
42
-
43
-
### Configurer Jupyter pour utiliser le plugin git
67
+
## Configurer `Jupyter` pour utiliser le plugin `Git`
44
68
45
69
La marche à suivre est présentée
46
70
[sur cette page](https://github.com/jupyterlab/jupyterlab-git)
47
71
48
-
### Configuration Visual Studio pour utiliser `Git`
72
+
##Configurer `Visual Studio` pour utiliser le plugin`Git`
49
73
50
74
Vous pouvez par exemple vous référer à [cette documentation](https://docs.microsoft.com/fr-fr/visualstudio/version-control/git-with-visual-studio?view=vs-2019)
Il existe un outil informatique puissant qui répond à tous ces besoins : la gestion de version (*version control system* (VCS) en anglais). Ses avantages sont incontestables et permettent de facilement :
64
+
Il existe un outil informatique puissant qui répond à tous ces besoins :
65
+
la __gestion de version__ (*version control system* (VCS) en anglais). Ses avantages sont incontestables et permettent de facilement :
52
66
53
-
* enregistrer l'historique des modifications d'un ensemble de fichiers
54
-
* revenir à des versions précédentes d'un ou plusieurs fichiers
55
-
* rechercher les modifications qui ont pu créer des erreurs
56
-
* partager ses modifications et récupérer celles des autres
57
-
* proposer des modifications, les discuter, sans pour autant modifier d'emblée la dernière version existante
58
-
* identifier les auteurs et la date des modifications
67
+
* enregistrer l'historique des modifications d'un ensemble de fichiers ;
68
+
* revenir à des versions précédentes d'un ou plusieurs fichiers ;
69
+
* rechercher les modifications qui ont pu créer des erreurs ;
70
+
* partager ses modifications et récupérer celles des autres ;
71
+
* proposer des modifications, les discuter, sans pour autant modifier d'emblée la dernière version existante ;
72
+
* identifier les auteurs et la date des modifications.
59
73
60
-
En outre, ces outils fonctionnent avec tous les langages informatiques (texte, R, Python, SAS, $\LaTeX$, Java, etc.) car reposent sur la comparaison des lignes et des caractères des programmes.
74
+
En outre, ces outils fonctionnent avec tous les langages
car reposent sur la comparaison des lignes et des caractères des programmes.
61
77
62
78
63
79
On peut ainsi résumer les principaux avantages du contrôle de version
@@ -71,9 +87,14 @@ de la manière suivante :
71
87
72
88
## Conserver et archiver du code
73
89
74
-
Une des principales fonctionnalités de la gestion de version est de conserver l'ensemble des fichiers de façon sécurisée et de proposer un archivage structuré des codes. Les fichiers sont stockés dans un **dépôt**, qui constitue le projet.
90
+
Une des principales fonctionnalités de la gestion de version est de conserver
91
+
l'ensemble des fichiers de façon sécurisée et de proposer un archivage
92
+
structuré des codes. Les fichiers sont stockés dans un **dépôt**, qui constitue le projet.
75
93
76
-
Tout repose dans la gestion et la présentation de l'historique des modifications. Chaque modification (ajout, suppression ou changement) sur un ou plusieurs fichiers est identifiée par son auteur, sa date et un bref descriptif[^1]. Chaque changement est donc unique et aisément identifiable quand les modifications sont classées par ordre chronologique. Les groupes de modifications transmis au dépôt sont appelées **commit**.
94
+
Tout repose dans la gestion et la présentation de l'historique des modifications.
95
+
Chaque modification (ajout, suppression ou changement) sur un ou plusieurs fichiers est identifiée par son auteur,
96
+
sa date et un bref descriptif[^1].
97
+
Chaque changement est donc unique et aisément identifiable quand les modifications sont classées par ordre chronologique. Les groupes de modifications transmis au dépôt sont appelées **commit**.
77
98
78
99
79
100
[^1]: Plus précisément, chaque modification est identifiée de manière unique par un code `SHA` auquel est associé l'auteur, l'horodatage et des métadonnées (par exemple le message descriptif associé).
@@ -101,12 +122,19 @@ La gestion de version permet de collaborer simplement et avec méthode. De faço
101
122
* trouver rapidement des erreurs et en diffuser rapidement la
102
123
correction
103
124
104
-
A ces avantages s'ajoutent les fonctionalités collaboratives des sites de dépôt
105
-
(les principaux étant `Github` et `Gitlab`), qui permettent d'intéragir via
106
-
des [*issues*](https://github.com/linogaliana/python-datascientist/issues), faire des suggestions de modifications, etc.
107
-
125
+
A ces avantages s'ajoutent les fonctionalités collaboratives des __forges__
126
+
qui sont des plateformes où peuvent être stockés des dépôts.
127
+
Néanmoins, ces forges proposent aujourd'hui beaucoup de fonctionalités
128
+
qui vont au-delà de l'archivage de code:
129
+
intéragir via
130
+
des [*issues*](https://github.com/linogaliana/python-datascientist/issues),
131
+
faire des suggestions de modifications, exécuter du code dans des
132
+
environnements normalisés, etc.
133
+
Il faut vraiment les voir comme des réseaux sociaux du code.
134
+
Les principales plateformes dans ce domaine étant `Github` et `Gitlab`.
108
135
109
-
L'usage individuel, c'est-à-dire seul sur son projet, permet aussi de "travailler en équipe avec soi-même" car il permet de retrouver des mois plus tard le contenu et le contexte des modifications. Cela est notamment précieux lors des changements de poste ou des travaux réguliers mais espacés dans le temps (par exemple, un mois par an chaque année). Même lorsqu'on travaille tout seul, on collabore avec un *moi* futur qui peut ne plus se souvenir de la modification des fichiers.
136
+
L'usage individuel, c'est-à-dire seul sur son projet,
137
+
permet aussi de "travailler en équipe avec soi-même" car il permet de retrouver des mois plus tard le contenu et le contexte des modifications. Cela est notamment précieux lors des changements de poste ou des travaux réguliers mais espacés dans le temps (par exemple, un mois par an chaque année). Même lorsqu'on travaille tout seul, on collabore avec un *moi* futur qui peut ne plus se souvenir de la modification des fichiers.
110
138
111
139
112
140
@@ -140,11 +168,11 @@ qu'on rend généralement visible au moyen de badges
140
168
141
169
Il existe plusieurs manières d'utiliser le contrôle de version :
142
170
143
-
* en ligne de commande, via [git bash](https://gitforwindows.org/), par exemple ;
144
-
* avec une interface graphique spécialisée, par exemple [tortoise git](https://tortoisegit.org/) ou [GitHub Desktop](https://desktop.github.com/) ;
171
+
* en ligne de commande, via [Git Bash](https://gitforwindows.org/), par exemple ;
172
+
* avec une interface graphique spécialisée, par exemple [Tortoise Git](https://tortoisegit.org/) ou [GitHub Desktop](https://desktop.github.com/) ;
145
173
* avec un logiciel de développement : la plupart des logiciels de développement ([RStudio](https://www.book.utilitr.org/git.html) pour `R`, [PyCharm](https://www.jetbrains.com/help/pycharm/using-git-integration.html), [jupyter](https://annefou.github.io/jupyter_publish/02-git/index.html) ou encore
146
-
[visual studio (extension GitLens)](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
147
-
pour `python`, proposent tous des modules graphiques facilitant l'usage de `Git`.
174
+
[Visual Studio (extension GitLens)](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
175
+
pour `Python`, proposent tous des modules graphiques facilitant l'usage de `Git`.
148
176
149
177
150
178
`Git` a été conçu, initialement pour la ligne de commande. Il existe
@@ -183,8 +211,8 @@ infructueuse) ;
183
211
collectif qu'on doit s'assurer de la cohérence avec la version disponible
184
212
en ligne (système *asynchrone*).
185
213
186
-
Le dépôt distant est généralement stocké sur une **forge
187
-
logicielle** (`Github` ou `Gitlab`) et sert à centraliser la version
214
+
Le dépôt distant est généralement stocké sur
215
+
une **forge logicielle** (`Github` ou `Gitlab`) et sert à centraliser la version
188
216
collective d'un projet. Les copies locales sont des copies de travail
0 commit comments