Aller au contenu

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.

Git

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
<<<<<<< HEAD
let isStudent = false; (vous)
⩵⩵⩵⩵
let estEtudiant=false; (le dev distant)
>>>>>>>

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
let isStudent = false;

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

Exercice - Git
Cloner un projet GitHub en ligne de commande

Exercice - Git
Git en ligne de commande