Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer...

Preview:

Citation preview

Formation GitFormation 2 en 1: Git 101 suivie de Git 102

20 Novembre 2017Formation ViaRézo

Francisco “aware” Puig

1

Un peu d’histoire...

- première version: 2005- projet initié par Linus Torvalds...- ...dans le seul but de servir d’outil pour le projet

du Noyau Linux

- outil “bas niveau” créé par un barbu pour des barbus

- ça s’installe mieux sur les systèmes Unix-like (GNU/Linux, Mac OS, etc) que sur Windows...

2

Interview TED:The mind behind Linux

Pourquoi git ?

- versionner- garder un historique des différentes versions d’un projet- pouvoir revenir en arrière- pouvoir savoir quand/pourquoi une modification a été faite

- collaborer- travailler à plusieurs sur le même projet…- ...sans s’envoyer de fichiers par mail !

3

Git 101Utiliser Git

4

Votre premier commit...

5

A quoi ressemble un dépôt git ?

6

- dépôt git: dossier versionné avec gitsuite de commits

- commit:ensemble de modifications

7

message

diff

[TP] Installer et configurer git

- git s’utilise en ligne de commande- télécharger git: git-scm.com

- vérifier que git est bien installégit --version

- pour committer, il faut d’abord dire qui on estgit config --global user.name “Jean-Claude Van Damme”git config --global user.email “jcvd@viarezo.fr”

8

[TP] Votre premier commitQuelques commandes utiles :3

- savoir où on en est

git status- ajouter les modifications d’un fichier au prochain commit

git add fichier- effectuer le commit !

git commit -m “message de commit”- retirer un fichier du prochain commit

git reset <fichier>

9

Collaborer avec git

10

Les dépôts distants

- jusqu’à présent, nous avons travaillé uniquement local- on aimerait bien pouvoir synchroniser notre dépôt local avec un dépôt hébergé

sur un serveur (un peu à la Google Drive)

11

Dépôt Distant

Dépôt LocalUtilisateur 1

Dépôt LocalUtilisateur 2

push pull

Gitlab

- serveur vous permettant d’héberger vos dépôts distants- une interface web pour explorer et gérer ces dépôts- Gitlab Community Edition est gratuit et il est possible d’installer sa propre

instance, comme gitlab.viarezo.fr- d’autres sites proposent les mêmes types de fonctionnalités, le plus connu

étant github.com

12

[TP] Héberger un dépôt sur Gitlab

13

- Créer un dépôt distant sur gitlab.viarezo.fr- Envoyer des commits dessus

- Quelques commandes utiles :3- télécharger (“cloner”) un dépôt distant sur sa machine

git clone <url>- pousser nos modifications vers le serveur

git push- récupérer les modifications depuis le serveur

git pull

Les commandes à connaître pour survivre

- git status- git add- git commit- git push- git pull- git clone

Parfois, une de ces commandes se passe mal (git pull ou git push souvent), keep calm !

14

Commandes bonus

- ajouter seulement certaines modifications d’un fichier

git add -p <fichier>- afficher le diff lié à un commit

git show <code d’un commit>- afficher l’historique des commits

git log

15

Git 102Comprendre Git

16

Les branches

17

Actuellement...

- tout le monde travaille à partir du même “état” du projet et envoie ses modifications au même endroit

- cela peut être problématique:- si quelqu’un doit placer temporairement le dépôt dans un état “instable” ou certaines choses

sont cassées, cela impacte tous les collaborateurs- on aimerait bien pouvoir inspecter les modifications avant des les intégrer définitivement au

projet- solution: séparer le projet en plusieurs “branches”

18

Anatomie (détaillée) d’un dépôt gitun dépôt git est un graphe orienté

- les noeuds sont les commits- les arêtes représentent la parenté

19

message

parent

diff

code

Tableau + craie > all

Les branches [TP]

20

Quelques commandes utiles :3

- créer une branche

git branch <branche>- changer de branche

git checkout <branche>- fusionner une branche dans la branche locale

git merge <branche>- avant de checkout sur une branche qui n’est disponible que sur le dépôt distant et pas en local

git fetch

Créer une branche, faire quelques commits, puis merge cette branche dans master

Gitlab: merge requests et code review

21

Cette slide est volontairement vide.

Théorie inutile

22

Git est distribué

- vous pouvez relier votre dépôt local à plusieurs dépôts distants !- exemple avec les TPs de l’électif Machine Learning 2A

23

24

Fonctionnement interne de Git

Références

- Pour arrêter de galérer avec Githttps://www.miximum.fr/blog/enfin-comprendre-git/

- Formation git de l’année dernièrehttps://people.via.ecp.fr/~aware/Formation%20Git.pptx

- A successful Git branching modelhttps://nvie.com/posts/a-successful-git-branching-model/

25

Recommended