25
Formation Git Formation 2 en 1: Git 101 suivie de Git 102 20 Novembre 2017 Formation ViaRézo Francisco “aware” Puig 1

Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

20 Novembre 2017Formation ViaRézo

Francisco “aware” Puig

1

Page 2: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 3: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 4: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Git 101Utiliser Git

4

Page 5: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Votre premier commit...

5

Page 6: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

A quoi ressemble un dépôt git ?

6

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

- commit:ensemble de modifications

Page 7: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

7

message

diff

Page 8: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

[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 “[email protected]

8

Page 9: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

[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

Page 10: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Collaborer avec git

10

Page 11: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 12: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 13: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

[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

Page 14: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 15: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 16: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Git 102Comprendre Git

16

Page 17: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Les branches

17

Page 18: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 19: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 20: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 21: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Gitlab: merge requests et code review

21

Cette slide est volontairement vide.

Page 22: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

Théorie inutile

22

Page 23: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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

Page 24: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

24

Fonctionnement interne de Git

Page 25: Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer une branchegit branch -changer de branchegit checkout -fusionner

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