Skip to content

Commit f394b23

Browse files
linogalianaantukigithub-actions[bot]
authored
Dernieres modifs geopandas (#298)
* intro * Relec ka 1210 (geopandas V2) (#297) * relec geopandas TUTO * relec geopandas TP * coquilles de numérotations ! * Revoir la partie Git (#296) * Automated changes * Automated changes Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Automated changes * Automated changes * update * Automated changes * Automated changes * featured image * requests * Automated changes * Automated changes Co-authored-by: Kim A <kim.antunez@ensae.fr> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 8df6bbc commit f394b23

File tree

4 files changed

+124
-58
lines changed

4 files changed

+124
-58
lines changed

content/course/git/_index.md

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Git: un élément essentiel au quotidien"
2+
title: "Git: un outil nécessaire pour les data-scientists"
33
date: 2020-07-16T13:00:00Z
44
draft: false
55
weight: 70
@@ -8,22 +8,47 @@ icon: git-alt
88
icon_pack: fab
99
#linktitle: "Partie 4: Natural Language Processing (NLP)"
1010
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`.
1416
type: book
1517
---
1618

1719
Cette partie du site présente un élément qui n'est pas propre à
1820
`Python` mais qui est néanmoins indispensable: la pratique de `Git`.
1921

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).
2225

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).
2330

24-
# Utilisation de git avec Python
2531

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`
2752

2853
Aller dans `File > Settings > Version Control > Git` pour définir le
2954
chemin vers lequel `Pycharm` doit trouver
@@ -39,13 +64,12 @@ le sous-dossier `cmd/git.exe`)[^1]
3964
de mot de passe tapé trop vite, les tentatives de connexion au dépôt distant seront
4065
systématiquement refusées
4166

42-
43-
### Configurer Jupyter pour utiliser le plugin git
67+
## Configurer `Jupyter` pour utiliser le plugin `Git`
4468

4569
La marche à suivre est présentée
4670
[sur cette page](https://github.com/jupyterlab/jupyterlab-git)
4771

48-
### Configuration Visual Studio pour utiliser `Git`
72+
## Configurer `Visual Studio` pour utiliser le plugin `Git`
4973

5074
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)
5175

content/course/git/introgit/index.qmd

Lines changed: 52 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ categories:
1010
- Tutoriel
1111
type: book
1212
summary: |
13-
Git est un système de contrôle de version qui facilite la
13+
`Git` est un système de contrôle de version qui facilite la
1414
sauvegarde, la gestion des évolutions et le partage
1515
d'un projet informatique. Il s'agit d'un élément devenu
16-
indispensable dans le domaine de la data-science.
16+
indispensable dans le domaine de la _data-science_.
1717
Ce chapitre présente quelques concepts qui seront
1818
mis en pratique dans le suivant.
1919
---
@@ -34,6 +34,9 @@ print_badges("content/course/git/introgit.qmd")
3434
```
3535
:::
3636

37+
Cette page reprend des éléments présents dans
38+
un [cours dédié fait avec Romain Avouac](https://formation.pages.lab.sspcloud.fr/git/20220929-formation-git-dese/#/title-slide)
39+
3740
# Pourquoi faire du `Git` <i class="fas fa-code-branch"></i> ?
3841

3942
Dans un projet, il est commun de se demander (ou de demander à quelqu'un) :
@@ -45,19 +48,32 @@ Dans un projet, il est commun de se demander (ou de demander à quelqu'un) :
4548
* comment fusionner des programmes écrits par plusieurs personnes
4649
* etc.
4750

48-
![](https://pbs.twimg.com/media/EiG-dwJVkAA-J0L?format=jpg&name=medium)
51+
```{python}
52+
import requests
53+
url = "https://thinkr.fr/wp-content/uploads/git_notfinal.gif"
54+
response = requests.get(url)
55+
if response.status_code == 200:
56+
57+
with open("featured.png", 'wb') as f:
58+
f.write(response.content)
59+
```
60+
61+
![](https://thinkr.fr/wp-content/uploads/git_notfinal.gif)
4962

5063

51-
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 :
5266

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.
5973

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
75+
informatiques (texte, `R`, `Python`, `SAS`, $\LaTeX$, `Java`, etc.)
76+
car reposent sur la comparaison des lignes et des caractères des programmes.
6177

6278

6379
On peut ainsi résumer les principaux avantages du contrôle de version
@@ -71,9 +87,14 @@ de la manière suivante :
7187

7288
## Conserver et archiver du code
7389

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.
7593

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**.
7798

7899

79100
[^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
101122
* trouver rapidement des erreurs et en diffuser rapidement la
102123
correction
103124

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`.
108135

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.
110138

111139

112140

@@ -140,11 +168,11 @@ qu'on rend généralement visible au moyen de badges
140168

141169
Il existe plusieurs manières d'utiliser le contrôle de version :
142170

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/) ;
145173
* 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`.
148176

149177

150178
`Git` a été conçu, initialement pour la ligne de commande. Il existe
@@ -183,8 +211,8 @@ infructueuse) ;
183211
collectif qu'on doit s'assurer de la cohérence avec la version disponible
184212
en ligne (système *asynchrone*).
185213

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
188216
collective d'un projet. Les copies locales sont des copies de travail
189217
qu'on utilise pour faire évoluer un projet:
190218

0 commit comments

Comments
 (0)