Cours 2 | Lignes de commande & Git¶
Lignes de commande¶
La ligne de commande est un outil qui permet d’interagir avec un ordinateur en tapant des commandes textuelles.
On écris des lignes de commande dans un CLI, aussi appelé « Terminal ».
Contrairement à une interface graphique (GUI) où vous cliquez sur des boutons, ici, vous tapez directement ce que vous voulez faire.
Les lignes de commande sont très utile en développement web et pour configurer les serveurs, entre autres.
Bon à savoir
- En ligne de commande, lorsqu'on voit
.
ou./
, cela signifie le répertoire courant. - Lorsqu'on voit
..
ou../
, ça signifie le répertoire parent. - On peut utiliser la touche Tab pour compléter une ligne de commande.
Où se trouve le terminal ?¶
- En Windows, utilisez l'application PowerShell2 plutôt que command prompt.
- En macOS, utilisez l'application Terminal3.
- En Linux, utilisez l'application Terminal4.
Position¶
Affichager l'emplacement avec « pwd »
pwd
# Résultat : C:\Windows
Navigation¶
Liste¶
Lister des fichiers et dossiers avec « ls »
ls
Déplacement¶
Changer de répertoire avec « cd »
cd nom_du_dossier
cd ./nom_du_dossier # identique à la commande précédente
cd .. # Se déplace au répertoire parent
Fichiers¶
Création¶
Créer un fichier avec « touch »
touch nom_du_fichier.txt
Lecture¶
Lire le contenu d'un fichier avec « cat »
cat nom_du_fichier.txt
Écriture¶
Écrire dans un fichier avec « echo »
echo "Texte à ajouter" >> nom_du_fichier.txt
echo "Texte en deuxième ligne" >> nom_du_fichier.txt
echo "Texte en troisième ligne!" >> nom_du_fichier.txt
echo "Finalement, remplace tout par ceci" > nom_du_fichier.txt
Déplacement¶
Déplacer, ou renommer!!, un fichier avec « mv »
mv nom_du_fichier.txt nouveau_nom.txt
mv nom_du_fichier.txt assets/nom_du_fichier.txt
Suppression¶
Supprimer un fichier ou un répertoire avec « rm »
rm nom_du_fichier.txt
Dossiers¶
Création¶
Créer un fichier avec « mkdir »
mkdir nom_du_dossier
Supprimer un dossier¶
Supprimer un dossier avec « rm -r ». L’option -r
signifie récursif (recursive en anglais), ce qui permet de supprimer tout les contenus d'un dossier.
rm -r nom_du_dossier
Exercice en ligne de commande¶
Exercice - CLI
Mandala
Markdown¶
Le Markdown est un langage de balisage léger créé par John Gruber permettant d'écrire des blogs, de la documentation ou des livres dans un format simple et standardisé. Le Markdown peut ensuite être converti facilement en divers formats, notamment: Word, PDF, EPUB ou HTML.
Sa grande force réside dans sa simplicité permettant de se concentrer sur l'écriture du texte lui-même, tout en offrant des options de mise en page de base.
Il existe plusieurs variations de Markdown. Cependant, nous nous concentrerons sur le Markdown Github.
Titres¶
# H1
## H2
### H3
#### H4
##### H5
###### H6
H1
H2
H3
H4
H5
H6
H4
H5
H6
H6
Accentuation¶
*Italic*
**Bold**
Italic
Bold
Liste non ordonnée¶
- Item 1
- Item 2
- Item 3
- Item 1
- Item 2
- Item 3
Liste ordonnée¶
1. Item 1
1. Item 2
1. Item 3
- Item 1
- Item 2
- Item 3
Lien¶
[Momo](https://tim-montmorency.com/)
Image¶

Citation¶
> La patience est la plus héroïque des vertus, précisément parce qu'elle n'a pas la moindre apparence d'héroïsme.
>
> — Giacomo Leopardi
La patience est la plus héroïque des vertus, précisément parce qu'elle n'a pas la moindre apparence d'héroïsme.
— Giacomo Leopardi
Code¶
```javascript
function exclamation() {
return "!";
}
```
function exclamation() {
return "!";
}
Trait horizontal¶
---
Tableaux¶
| Entête 1 | Entête 2 | Entête 3 |
| -------- | -------- | -------- |
| Ligne 1 | Data 1 | Data 2 |
| Ligne 2 | Data 3 | Data 4 |
Entête 1 | Entête 2 | Entête 3 |
---|---|---|
Ligne 1 | Data 1 | Data 2 |
Ligne 2 | Data 3 | Data 4 |
Outil¶
Outil - Markdown
Dellinger - WYSIWYG Markdown
Exercice Markdown¶
Exercice - Markdown
Tutoriel Markdown
Git¶
Git est un outil qui vous protège de vous-même. Il permet en quelque sorte de faire des « checkpoints » ou en français, des points de sauvegarde , dans un projet.
Ainsi, vous pouvez modifier votre projet l'esprit tranquille, puisqu'il vous permet de revenir en arrière en cas de besoin.
Répertoire ¶
Un répertoire (« repository » ou « repo » en anglais) est le nom donné au dossier surveillé par Git. À chaque commit
, tous les changements effectués à l'intérieur de celui-ci seront enregistrés par Git.
.git
Lorsqu'un dossier est surveillé par Git, un dossier caché nommé .git
s'ajoutera à la racine. Il contient les données données de version, de branches et de configuration Git.
Commit¶
À tout moment, il est possible de sauvegarder en local (sur son ordinateur) l'avancement d'un projet avec Git.
On doit dabord choisir quels fichiers ou changements on souhaite sauvegarder. Cette étape est appelée staging
ou stage
. Ensuite, on peut faire une sauvegarde acccompagnée d'un petit commentaire1. Cette étape est appelée commit
.
Ligne de commande
Connaître la liste des fichiés ajoutés, modifiés ou supprimés : git status
Ajouter des fichiers au commit : git add NOM_DU_FICHIER
Pour ajouter tous les fichiers créés et modifiés : git add -A
Enregistrer un nouveau commit : git commit -m "Votre note ici"
Push¶
Idéalement, un commit est ensuite poussé vers un service infonuagique comme GitHub par exemple.
C'est ce qu'on appel faire un push
.
Ligne de commande
Envoyer le commit au serveur distant : git push
Branches¶
Par défaut, tous les répertoires ont une branche principale appelée main
. Lorsqu'un push
est effectué, les changements sont envoyés vers cette branche.
Travailler sur des branches séparées permet de développer de nouvelles fonctionnalités ou corriger des bugs sans affecter la branche principale (main
). Cela aide à maintenir un projet stable.
Dans l'image ci-dessous, chaque couleur représente une branch
différente et chaque cercle représente un commit
.
Ligne de commande
Voir la liste des branches : git branch
Créer une branche : git branch NOM_DE_LA_BRANCHE
Se déplacer sur une nouvelle branche : git checkout NOM_DE_LA_BRANCHE
Merge¶
Une fois vos modifications terminées sur une branche, utilisez git merge [branche] pour fusionner ces changements dans une autre branche, comme main.
Ligne de commande
Intégrer une branche à la branch courante : git merge NOM_DE_LA_BRANCHE
Collaboration¶
Git permet de travailler simultanément sur un même projet.
Admettons qu'une équipe doivent développer le même projet sur GitHub.
Chaque développeur va faire une copie du projet sur son ordinateur. On appelle cette étape, faire un clone
.
Lorqu'un membre de l'équipe effectue un push
, les autres développeurs doivent se synchroniser manuellement.
Ils doivent donc effectuer un pull
avant de faire un push
à leur tour.
Ligne de commande
Télécharge (clone) un projet distant : git clone URL
Conflits¶
Qui dit collaboration, dit conflits potentiels.
Les conflits surviennent lorsque deux développeurs modifient le même fichier.
Git combine automatiquement les modifications si elles sont sur des lignes différentes.
Si les mêmes lignes sont modifiées, un conflit est créé.
Exemple de conflit | |
---|---|
48 49 50 51 52 |
|
Petit truc
Pour minimiser les conflits, effectuez des commit
+ push
régulièrement, au minimum une fois par jour!
Résolution de conflit¶
Choisissez le code pertinent, supprimez l’autre ainsi que les marqueurs.
Exemple de conflit résolu | |
---|---|
49 |
|
Attention
Lorsqu'on résout un conflit, nécessairement, on supprime le code de quelqu'un. Afin d'éviter des conflits, cette fois, de l'ordre interpersonnels, communiquez avec l'auteur du code supprimé pour l'informer de votre décision. Il est toujours préférable de maintenir une attitude respectueuse et professionnelle .
.gitignore¶
Git permet d’ignorer certains fichiers ou dossiers en utilisant un fichier nommé .gitignore
.
Ignorer un fichier¶
Pour ignorer un fichier spécifique, ajoutez simplement son nom dans le fichier .gitignore
.
Par exemple, pour ignorer notes_perso.txt
, ajoutez :
notes_perso.txt
On peut aussi utiliser un « wildcard » (*
) si on ne connais pas le nom du ou des fichiers à exclure.
# Git ignorera tous les fichiers avec l'extension .txt
*.txt
Ignorer un dossier¶
Pour ignorer un dossier, ajoutez son nom suivi de /
.
node_modules/
Exercices Git¶
Exercice - Git
Cloner un projet GitHub en ligne de commande
Exercice - Git
Git en ligne de commande
Github¶
GitHub est un service en ligne qui permet de stocker et partager vos projets Git avec d’autres personnes.
Disons que c'est la partie concernée par la notion de push
avec Git
Collaboration¶
Héberger un projet sur GitHub est gratuit et beaucoup de projets sont publics afin de pouvoir être consultés/modifiés au besoin.
Parmi ces projets, on retrouve plusieurs librairies connues, telles que :
On y retrouve également plusieurs organisations d'envergures :
Création d'un répertoire¶
Pour créer un répertoire, il suffit d'être connecté à GitHub et de se rendre sur la page d'accueil. En haut à gauche de l'interface, un bouton New
permet d'accéder à la page d'initialisation d'un nouveau repo.
Nouveau répertoire¶
Sur cette page, il suffit d'entrer le nom désiré du repo, une brève description et son statut (privé ou public).
De plus, il est possible de spécifier si un fichier README devrait être créé, de spécifier si l'on souhaite utiliser un .gitignore et si une licence devrait être attribuée au projet.
README¶
Le fichier README sert à présenter un projet. Il indique généralement la raison d'être du projet et souvent comment l'utiliser.
Sur GitHub, un fichier README situé à la racine d'un projet sera automatiquement détecté puis affiché sous les dossiers du projet en question.
C'est une porte d'entrée extrêmement importante dans un contexte de collaboration grand public.
Son contenu est traditionnellement rédigé en Markdown, d'où l'extension .md
.
Gitignore¶
Le fichier .gitignore permet de spécifier à Git des fichiers ou dossiers à l'intérieur du repo qu'il ne devrait pas surveiller et pousser vers le serveur (GitHub).
Voici un exemple de .gitignore :
node_modules/
.sass-cache/
mes-notes-perso.txt
Licenses¶
Si un repo n'a aucune licence, il est possible d'utiliser son contenu librement.
Cependant, certaines licences vont spécifier:
- de créditer l'auteur
- que son usage est réservé aux projets à but non lucratif
- de ne pas modifier le contenu
- etc.
Voici un petit guide (en anglais) pour vous aider à choisir une licence.
Clone¶
Si vous avez créé votre repo en ligne, vous voudrez assurément travailler dessus sur un ordinateur, soit au collège ou à la maison.
Pour ce faire, il faut repérer le bouton vert Code
en haut à droite de votre page de répertoire.
En cliquant sur celui-ci, vous aurez les options de:
Copier l'url du répertoire, ce qui peut-être requis par certains logiciels concurrents à GitHub Desktop.
Pour effectuer un clone en ligne de commande, vous pouvez utiliser l'url indiquée.
Pour cloner avec le logiciel « GitHub Desktop », assurez vous d'abord que celui-ci soit installé, puis cliquez sur le lien « Open with GitHub Desktop ».
Fork¶
Pour modifier un repo en ligne, il faut en être l'auteur ou en avoir obtenu la permission.
Néanmoins, il est possible d'être intéressé par un projet et de vouloir s'en servir comme point de départ pour créer sa propre variation.
Pour ce faire, il est possible d'effectuer un fork
. Cette commande copie le repo GitHub en question vers son compte GitHub. Puisque cette copie du repo vous appartient, vous pouvez effectuer des modifications et des push
sur celle-ci.
Pour ce faire, il faut cliquer sur le bouton « Fork » en haut à droite du répertoire que l'on désire copier.
Alternatives¶
Les deux plus grands compétiteurs à GitHub sont :
- Bitbucket
- GitLab
Exercice Github¶
Exercice - Git
Mandala Git
Github Desktop¶
L'interface en ligne de commande de Git permet aux développeurs de travailler sans interface graphique en tapant des lignes de commandes directement dans un terminal. Cette technique est puissante, efficace et ne présente que très peu d'inconvénients, outre qu'elle peut paraître intimidante de prime abord.
Pour rendre Git plus accessible, GitHub a créé l'application gratuite GitHub Desktop offrant une interface graphique, permettant d'utiliser des boutons plutôt que d'entrer des lignes de commande sous forme de texte.
Authentification¶
Clone via Github¶
Clone manuel¶
Repo / Branch / Fetch et Pull¶
Current Repository indique le répertoire/projet sur lequel vous, vous trouver. Au clic, il vous permet de passer d'un projet à un autre.
Current Branch indique la branche courante. Au clic, il est possible de changer de branche.
Fetch origin indique quand GitHub Desktop a vérifié pour la dernière fois si de nouveaux changements étaient disponibles en ligne. Cliquer sur cet onglet forcera GitHub à effectuer une nouvelle vérification. Si un changement existe, le bouton changement pour un "Pull origin".
Commit¶
Changes indique le nombre de fichiers modifiés depuis le dernier commit et les affiches, sous forme de liste.
History lorsque sélectionné, indique tous les précédents commits, du plus récent aux plus anciens, et permet de voir le détail de chaque fichier modifié.
Push¶
Se déplacer entre commits (rollback)¶
Alternatives¶
Il existe plusieurs alternatives à GitHub Desktop, notamment:
- Sourcetree
- GitKraken
Exercice Github Desktop¶
Exercice - Git
Prometheus