Intro Git Github

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 38

Introduction à Git et GitHub

Contenu inspiré de https://github.com/PonteIneptique/cours-git (© Thibault Clérice, publié sous licence CC BY)

Copyright © 2020-2022 Pier-Luc Brault.


Cette présentation est mise à disposition selon les termes de la
Licence Creative Commons Paternité - Partage des Conditions Initiales à l'Identique 4.0 International.
Contenu


Git

C’est quoi?

Les bases

Les branches

Travailler avec un serveur distant

GitHub

C’est quoi?

Les Pull Requests

2
Git >> C’est quoi?

3
Git, c’est quoi?


Git = Logiciel de gestion de versions

Logiciel libre et gratuit

Permet de

Conserver l’historique des modifications aux fichiers d’un
projet

Revenir en arrière (annuler des modifications)

Gérer en parallèle plusieurs versions d’un projet et les
fusionner (idéal pour la collaboration)

4
Historique


Créé en 2005 par Linus Torvalds (créateur du
noyau Linux)

Présentement à la version 2

Photo par Krd et Von Sprat sur Wikimedia


(Licence CC BY-SA 4.0)

5
Quelques logiciels concurrents


SVN

CVS

Mercurial

6
Git >> Les bases

7
Utilisation


Traditionnellement utilisé en ligne de
commande

Il existe aussi des outils graphiques, ex:

GitKraken

GitHub Desktop

SourceTree

8
Les dépôts


Un projet Git est appelé un dépôt (repository
en anglais, repo pour les intimes)

Concrètement, un dépôt est un répertoire

contenant des fichiers (typiquement de code source)

dont l’historique des modifications est géré par Git

9
Créer un dépôt

La commande « git init » permet d’initialiser un


dépôt dans un répertoire (vide ou non)

10
Les commits


Pour qu’une modification soit « sauvegardée »
par Git, elle doit être ajoutée à l’historique par
un « commit »

Un commit...

Est identifié par un message composé par l’utilisateur
(commit message)

Peut comporter des modifications à plusieurs fichiers

11
États des fichiers

On distingue trois « états » des fichiers

un état de travail: le fichier a subi des modifications, mais n’a
pas encore été ajouté à un futur commit

un état de futur enregistrement (staging): le fichier a été
identifié comme devant être ajouté au prochain commit

un état archivé : toutes les modifications apportées au fichier
ont été « commitées »

État de travail Staging État archivé

Nouvelles modifications Nouvelles modifications Toutes les modifications


non ajoutées à un futur sélectionnées pour le ont été « commitées »
commit prochain commit

12
Ajouter une modification
La commande « git add » permet d’ajouter un
fichier au prochain commit (donc de mettre le
fichier en staging)

13
Consulter l’état du dépôt
La commande « git status » affiche l’état des
modifications non « commitées » (« stagées » ou non)

14
Ajouter un commit
La commande « git commit » permet de créer un
nouveau commit. Il faut utiliser l’option -m pour
indiquer le message à associer au commit.

15
Ajout automatique des fichiers modifiés
(git commit -a)

16
Consulter l’historique du dépôt

La commande « git log » permet d’afficher


l’historique du dépôt

17
Tableau-synthèse des commandes de
base
Description Commande

Créer un dépôt git init

Ajouter une modification au prochain commit git add <NOM DU FICHIER>

(Astuce: utiliser git add --all pour ajouter toutes


les modifications non « stagées »)
Consulter l’état du dépôt git status

Ajouter un commit git commit -m "MESSAGE"

L’option -a permet d’ajouter toutes les


nouvelles modifications automatiquement
(mais pas les nouveaux fichiers)
Consulter l’historique du dépôt git log
18
Git >> Les branches

19
Les branches


Les branches permettent de gérer en parallèle
plusieurs versions d’un dépôt

Créer une branche, c’est donc un peu comme
utiliser la fonction « Sauvegarder sous » d’un
logiciel

Sauf qu’on peut plus facilement fusionner
deux versions (branches) par la suite!

20
Exemple visuel

Commit de
Commit Commit Commit
Commit3 Commit Commit
Branche A Fusion

Création de la
branche B à Fusion de
partir d’un la branche
commit de la B dans la
branche A branche A

Branche B Commit Commit Commit


Commit3

21
Branche principale et utilité des
branches

La branche par défaut s’appelle master

Tendance depuis 2020 à renommer cette branche en « main »
pour éviter la référence à l'esclavage

Les branches permettent de travailler sur
différents problèmes en parallèle

Possibilité de travailler sur des problèmes différents en même
temps et de changer de tâche rapidement

Ex:

La branche main qui contient les fonctionnalités stables du logiciel

La branche fonctionnalite1 pour travailler sur le développement de la
fonctionnalité 1

La branche bogue1 pour travailler sur la résolution du bogue 1

22
Créer une branche

La commande « git branch » permet de créer


une nouvelle branche à partir du dernier commit
de la branche courante

23
Se déplacer dans une branche

La commande « git checkout » permet de se


déplacer dans une branche existante

24
Fusionner une branche

La commande « git merge » permet de fusionner


une autre branche dans la branche courante

25
Git >> Travailler avec un serveur
distant

26
Travailler avec un serveur distant


Git est décentralisé

C’est-à-dire que tous les utilisateurs contribuant à un dépôt
possèdent une copie complète de celui-ci sur leur poste, avec
tout l’historique des commits

Pour que plusieurs utilisateurs puissent
collaborer ensemble, il faut qu’un serveur
distant maintienne lui aussi une copie du dépôt

27
Récupérer un dépôt distant


Pour contribuer à un dépôt, on doit d’abord
cloner celui-ci depuis le serveur qui l’héberge

On travaille ensuite localement en créant des
branches et des commits à volonté

Copie du dépôt
Copie locale
sur un serveur
du dépôt
distant Clonage

28
Mettre à jour une branche distante


Pour partager ses modifications, on doit
effectuer un push d’une branche locale vers le
serveur distant

Copie du dépôt
Copie locale
sur un serveur
du dépôt
distant

Branche Branche
Push

29
Mettre à jour une branche locale


Pour récupérer les modifications effectuées par
autrui, on doit effectuer un pull d’une branche
du serveur distant vers le dépôt local

Copie du dépôt
Copie locale
sur un serveur
du dépôt
distant

Branche Branche
Pull

30
Commandes


Les commandes permettant d’effectuer ces
opérations seront couvertes dans l’exercice

31
GitHub, c’est quoi?

32
GitHub, c’est quoi?

Hébergeur de dépôts Git (serveur distant)

Interface Web permettant de visualiser les dépôts

Permet de gérer l’accès aux dépôts (utilisateurs
autorisés en lecture et en écriture)

Gestion de bogues et de tickets (GitHub Issues)

Gestion de fusion de branches et de revue de code
(code review)

33
Principaux concurrents


GitLab

Bitbucket

34
GitHub >> Les Pull Requests

35
Les Pull Requests


Les bonnes pratiques veulent qu’on ne travaille
jamais directement sur la branche principale

Lorsqu’on est prêt à fusionner notre branche
dans la branche principale, on effectue un Pull
Request via GitHub

36
Les Pull Requests


Les autres contributeurs du dépôt sont alors en
mesure d’effectuer une revue de code

Une fois le Pull Request approuvé, la branche
correspondante peut être fusionnée
directement via l’interface Web

37
Fin de la présentation
Des questions?

Photo par Emily Morter sur Unsplash


38

Vous aimerez peut-être aussi