Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer...
Transcript of Formation Git - ViAREZO · 2020-06-15 · Les branches [TP] 20 Quelques commandes utiles :3-créer...
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 “[email protected]”
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