SlideShare une entreprise Scribd logo
#DevoxxFR 1
Thomas COLLIGNON
Pratiquer Git au niveau supérieur
Jérôme TAMBORINI
Alexis DMYTRYK
#DevoxxFR
La startup
jetestedoncjesuis.js
2
#DevoxxFR
Roadmap
3
First part
• Stash
• Worktree
Second part
• Rebase
• Reflog
Last part
• Bisect
• Hooks, aliases,
retours d’XP
#DevoxxFR
We love picture
We try to keep the Devox France logo and the Tweet
hashtag on all slides
4
#DevoxxFR
Alerte générale : pré-requis
A vos clés USB !
• Tout est dedans (dossier install)
• Si le wifi marche :
https://github.com/efluid/jeTestDoncJeSuis-hol
Check Install : git, maven & gradle
• git --version
• mvn –version; gradle --version
• cd jeTestDoncJeSuis-hol; git status
5
#DevoxxFR
Alerte générale : petit sondage connaissances Git
Nombre d’années d’utilisation ?
• < 2ans – 2 à 5 ans – > 5 ans
Avant vous utilisez quoi ?
• SVN – CVS – ClearCase – Perforce – …
Qu’utilisez-vous ?
• Client GUI – Terminal
Quelle est votre utilisation de Git ?
• Commandes, flow, merge, rebase, etc.
6
#DevoxxFR
git help macommande
We try to keep the Devox France logo and the Tweet
hashtag on all slides
7
git macommande --help
#DevoxxFR
First part
8
git stash
git worktree
#DevoxxFR
First part : stash
9
Lundi matin
• On attaque une modification
• Puis une autre
• Puis une autre …
• Comment gérer proprement ses modifications
sans qu’elles ne se marchent dessus ?
#DevoxxFR
First part : stash
10
stash@{0}
stash@{1}
Pile
Zone de remisage
git stash
git stash push
git stash pop
git stash apply
stash@{1}
#DevoxxFR
First part : stash : à vos claviers
127.0.0.1:6363[2]> git stash
(integer) 1
127.0.0.1:6363[2]> ,,,
127.0.0.1:6363[2]> git stash save
(integer) 1
127.0.0.1:6363[2]> git stash pop
(integer) 1
12
#DevoxxFR
First part : worktree
13
Mardi matin
• On a un test à fixer en urgence
• Et bien sûr, un dev. à implémenter en urgence
• Fini de jouer avec le stash : on veut être plus
productif !
• Comment faire ?
#DevoxxFR
First part : worktree
14
Dépôt GIT
…
Un même dépôt mais des espaces de travail différents
Path : /d/monDepotPrincipal
Branche : master
Path : /d/monDepotCorrectionXXX
Branche : correctionXXX
Path : /d/monDepotNewFeatXXX
Branche : newFeatXXX
#DevoxxFR
First part : worktree : à vos claviers
127.0.0.1:6363[2]> git worktree --help
(integer) 1
127.0.0.1:6363[2]> ,,,
127.0.0.1:6363[2]> ./attaqueDDOSCIA.sh
(integer) 1
127.0.0.1:6363[2]> …
(integer) 1
15
#DevoxxFR
Second part
16
git rebase (-i)
git reflog
#DevoxxFR
Second part : rebase - reflog
17
Merge VS Rebase
• 2 « politiques »
• Equivalent à une stack
Crédit : Atlassian
#DevoxxFR
Second part : rebase interactif
18
Mercredi matin : le CTO débarque
• 2 features ont été développées la veille au soir
• Règles internes de développement
 Découpez vos commits
 Implémentez vos features en TDD
• Comment gagner sa prime ?
#DevoxxFR
Second part : rebase : à vos claviers
127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman"
(integer) 1
127.0.0.1:6363[2]>
127.0.0.1:6363[2]> zadd hackers 1969 "Linus"
(integer) 1
127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing"
(integer) 1
19
#DevoxxFR
Second part : rebase interactif
20
L'historique partagé jamais tu ne rebaseras
#DevoxxFR
Second part : reflog
21
Jeudi matin
• La veille au soir, on est sorti au bar (normal)
• On attaque un développement
• On a un coup de téléphone avec une question
sur un dev. précédent
• On ne sait plus où on en est, comment faire ?
#DevoxxFR
Second part : reflog : à vos claviers
127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman"
(integer) 1
127.0.0.1:6363[2]>
127.0.0.1:6363[2]> zadd hackers 1969 "Linus"
(integer) 1
127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing"
(integer) 1
22
#DevoxxFR
Last part
23
git bisect
Hooks, aliases & cie
#DevoxxFR
Last part : bisect
24
Vendredi matin : le CTO débarque en mode fury
• Un bug bloquant vient d’être détectée en
production
• Personne ne l’avait vu !?
• D’où vient ce bug ?
• De quel commit ?
#DevoxxFR
Last part : bisect : à vos claviers
127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman"
(integer) 1
127.0.0.1:6363[2]>
127.0.0.1:6363[2]> zadd hackers 1969 "Linus"
(integer) 1
127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing"
(integer) 1
25
#DevoxxFR
Last part : hooks - aliases and whatever you want !
26
Samedi matin (bah oui, ça reste une start-up ^^)
• Comment ajouter des contrôles ?
• Comment se faire ses alias Git ?
• Des bonus, des questions, des échanges
#DevoxxFR
Last part : hooks - aliases and whatever you want !
27
Crédit : delicious-insights.com
#DevoxxFR
Last part : hooks - aliases and whatever you want !
127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman"
(integer) 1
127.0.0.1:6363[2]>
127.0.0.1:6363[2]> zadd hackers 1969 "Linus"
(integer) 1
127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing"
(integer) 1
28
#DevoxxFR 29
Thomas COLLIGNON Jérôme TAMBORINI
Alexis DMYTRYK

Contenu connexe

Tendances

BEBUTANT JAVA
BEBUTANT  JAVABEBUTANT  JAVA
BEBUTANT JAVAviolonjo
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
Jean-Baptiste Vigneron
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Joël Séguillon
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
webreaker
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
Sylvain Witmeyer
 
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Publicis Sapient Engineering
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
Julien Blin
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
Francois ANDRE
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitGeoffrey Bachelet
 
Git et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsGit et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsAlice Loeser
 
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
Publicis Sapient Engineering
 
PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2
Rodolphe Quiédeville
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
Riadh MNASRI
 
Implementing a key/value store
Implementing a key/value storeImplementing a key/value store
Implementing a key/value store
Benjamin Joyen-Conseil
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
Arthur Lutz
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Cheikh Tidiane DIABANG
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
Mohamed Ben Bouzid
 
Rapport administration systèmes et supervision réseaux tp2 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp2 diabang master1 trRapport administration systèmes et supervision réseaux tp2 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp2 diabang master1 tr
Cheikh Tidiane DIABANG
 

Tendances (20)

BEBUTANT JAVA
BEBUTANT  JAVABEBUTANT  JAVA
BEBUTANT JAVA
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops) Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
Terraform OpenStack : Mise en pratique sur infrastructure OVH (Rennes devops)
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015Les développeurs aussi maitrisent le systèmD - Devoxx 2015
Les développeurs aussi maitrisent le systèmD - Devoxx 2015
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
Git et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsGit et les systèmes de gestion de versions
Git et les systèmes de gestion de versions
 
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
XebiCon'16 : Wescale - GoCD démystifié Aurélien Maury, Directeur Technique et...
 
PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2PostgreSQL Meetup Nantes #2
PostgreSQL Meetup Nantes #2
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Implementing a key/value store
Implementing a key/value storeImplementing a key/value store
Implementing a key/value store
 
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou...
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
Rapport administration systèmes et supervision réseaux tp2 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp2 diabang master1 trRapport administration systèmes et supervision réseaux tp2 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp2 diabang master1 tr
 

Similaire à TP Git avancé DevoxxFR 2018 (pres')

Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Fabien Arcellier
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
Hackfest Communication
 
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
Daniel Petisme
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
Guillaume Collic
 
Backdoors et rootkits_avancees_[slides]
Backdoors et rootkits_avancees_[slides]Backdoors et rootkits_avancees_[slides]
Backdoors et rootkits_avancees_[slides]UltraUploader
 
Git
GitGit
Java (8) eXperiments - DevoxxFR 2016
Java (8) eXperiments - DevoxxFR 2016Java (8) eXperiments - DevoxxFR 2016
Java (8) eXperiments - DevoxxFR 2016
François Sarradin
 
Lego bonnes pratiques_devoxx_2017
Lego bonnes pratiques_devoxx_2017Lego bonnes pratiques_devoxx_2017
Lego bonnes pratiques_devoxx_2017
Alice Barralon
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
badrfathallah2
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
christophep21
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Microsoft
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
Thibaut Marmin
 
GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)
Neo4j
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
CGI Québec Formation
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratique
Rossi Oddet
 
Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'
Pierre-jean Texier
 
git-cmds-base.pdf
git-cmds-base.pdfgit-cmds-base.pdf
git-cmds-base.pdf
ChaimaTahiri1
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
laurenthuet
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
Wescale
 

Similaire à TP Git avancé DevoxxFR 2018 (pres') (20)

Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
Hackerspace jan-2013
Hackerspace jan-2013Hackerspace jan-2013
Hackerspace jan-2013
 
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
Construire un Fitbit-like pour chiens et chats (Devoxx France 21/04/2016)
 
Git Chti JUG
Git Chti JUGGit Chti JUG
Git Chti JUG
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Backdoors et rootkits_avancees_[slides]
Backdoors et rootkits_avancees_[slides]Backdoors et rootkits_avancees_[slides]
Backdoors et rootkits_avancees_[slides]
 
Git
GitGit
Git
 
Java (8) eXperiments - DevoxxFR 2016
Java (8) eXperiments - DevoxxFR 2016Java (8) eXperiments - DevoxxFR 2016
Java (8) eXperiments - DevoxxFR 2016
 
Lego bonnes pratiques_devoxx_2017
Lego bonnes pratiques_devoxx_2017Lego bonnes pratiques_devoxx_2017
Lego bonnes pratiques_devoxx_2017
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratique
 
Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'Mender 2.0 101: Bien démarrer avec les 'update modules'
Mender 2.0 101: Bien démarrer avec les 'update modules'
 
git-cmds-base.pdf
git-cmds-base.pdfgit-cmds-base.pdf
git-cmds-base.pdf
 
Kit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIYKit de survie pour l'IoT façon DIY
Kit de survie pour l'IoT façon DIY
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
 

Dernier

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 

Dernier (6)

OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 

TP Git avancé DevoxxFR 2018 (pres')

  • 1. #DevoxxFR 1 Thomas COLLIGNON Pratiquer Git au niveau supérieur Jérôme TAMBORINI Alexis DMYTRYK
  • 3. #DevoxxFR Roadmap 3 First part • Stash • Worktree Second part • Rebase • Reflog Last part • Bisect • Hooks, aliases, retours d’XP
  • 4. #DevoxxFR We love picture We try to keep the Devox France logo and the Tweet hashtag on all slides 4
  • 5. #DevoxxFR Alerte générale : pré-requis A vos clés USB ! • Tout est dedans (dossier install) • Si le wifi marche : https://github.com/efluid/jeTestDoncJeSuis-hol Check Install : git, maven & gradle • git --version • mvn –version; gradle --version • cd jeTestDoncJeSuis-hol; git status 5
  • 6. #DevoxxFR Alerte générale : petit sondage connaissances Git Nombre d’années d’utilisation ? • < 2ans – 2 à 5 ans – > 5 ans Avant vous utilisez quoi ? • SVN – CVS – ClearCase – Perforce – … Qu’utilisez-vous ? • Client GUI – Terminal Quelle est votre utilisation de Git ? • Commandes, flow, merge, rebase, etc. 6
  • 7. #DevoxxFR git help macommande We try to keep the Devox France logo and the Tweet hashtag on all slides 7 git macommande --help
  • 9. #DevoxxFR First part : stash 9 Lundi matin • On attaque une modification • Puis une autre • Puis une autre … • Comment gérer proprement ses modifications sans qu’elles ne se marchent dessus ?
  • 10. #DevoxxFR First part : stash 10 stash@{0} stash@{1} Pile Zone de remisage git stash git stash push git stash pop git stash apply stash@{1}
  • 11. #DevoxxFR First part : stash : à vos claviers 127.0.0.1:6363[2]> git stash (integer) 1 127.0.0.1:6363[2]> ,,, 127.0.0.1:6363[2]> git stash save (integer) 1 127.0.0.1:6363[2]> git stash pop (integer) 1 12
  • 12. #DevoxxFR First part : worktree 13 Mardi matin • On a un test à fixer en urgence • Et bien sûr, un dev. à implémenter en urgence • Fini de jouer avec le stash : on veut être plus productif ! • Comment faire ?
  • 13. #DevoxxFR First part : worktree 14 Dépôt GIT … Un même dépôt mais des espaces de travail différents Path : /d/monDepotPrincipal Branche : master Path : /d/monDepotCorrectionXXX Branche : correctionXXX Path : /d/monDepotNewFeatXXX Branche : newFeatXXX
  • 14. #DevoxxFR First part : worktree : à vos claviers 127.0.0.1:6363[2]> git worktree --help (integer) 1 127.0.0.1:6363[2]> ,,, 127.0.0.1:6363[2]> ./attaqueDDOSCIA.sh (integer) 1 127.0.0.1:6363[2]> … (integer) 1 15
  • 16. #DevoxxFR Second part : rebase - reflog 17 Merge VS Rebase • 2 « politiques » • Equivalent à une stack Crédit : Atlassian
  • 17. #DevoxxFR Second part : rebase interactif 18 Mercredi matin : le CTO débarque • 2 features ont été développées la veille au soir • Règles internes de développement  Découpez vos commits  Implémentez vos features en TDD • Comment gagner sa prime ?
  • 18. #DevoxxFR Second part : rebase : à vos claviers 127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman" (integer) 1 127.0.0.1:6363[2]> 127.0.0.1:6363[2]> zadd hackers 1969 "Linus" (integer) 1 127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing" (integer) 1 19
  • 19. #DevoxxFR Second part : rebase interactif 20 L'historique partagé jamais tu ne rebaseras
  • 20. #DevoxxFR Second part : reflog 21 Jeudi matin • La veille au soir, on est sorti au bar (normal) • On attaque un développement • On a un coup de téléphone avec une question sur un dev. précédent • On ne sait plus où on en est, comment faire ?
  • 21. #DevoxxFR Second part : reflog : à vos claviers 127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman" (integer) 1 127.0.0.1:6363[2]> 127.0.0.1:6363[2]> zadd hackers 1969 "Linus" (integer) 1 127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing" (integer) 1 22
  • 23. #DevoxxFR Last part : bisect 24 Vendredi matin : le CTO débarque en mode fury • Un bug bloquant vient d’être détectée en production • Personne ne l’avait vu !? • D’où vient ce bug ? • De quel commit ?
  • 24. #DevoxxFR Last part : bisect : à vos claviers 127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman" (integer) 1 127.0.0.1:6363[2]> 127.0.0.1:6363[2]> zadd hackers 1969 "Linus" (integer) 1 127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing" (integer) 1 25
  • 25. #DevoxxFR Last part : hooks - aliases and whatever you want ! 26 Samedi matin (bah oui, ça reste une start-up ^^) • Comment ajouter des contrôles ? • Comment se faire ses alias Git ? • Des bonus, des questions, des échanges
  • 26. #DevoxxFR Last part : hooks - aliases and whatever you want ! 27 Crédit : delicious-insights.com
  • 27. #DevoxxFR Last part : hooks - aliases and whatever you want ! 127.0.0.1:6363[2]> zadd hackers 1953 "Richard Stallman" (integer) 1 127.0.0.1:6363[2]> 127.0.0.1:6363[2]> zadd hackers 1969 "Linus" (integer) 1 127.0.0.1:6363[2]> zadd hackers 1912 "Alan turing" (integer) 1 28
  • 28. #DevoxxFR 29 Thomas COLLIGNON Jérôme TAMBORINI Alexis DMYTRYK

Notes de l'éditeur

  1. First part --- Second part Rebase interactif : 45 mins Reflog : 15 mins Last part bisect : 30 mins Hooks aliases : 30 mins
  2. Migration d’efluid de CVS ver sGit en Août 2011
  3. Migration d’efluid de CVS ver sGit en Août 2011
  4. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile
  5. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile
  6. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile
  7. L'historique partagé jamais tu ne rebaseras : Tant que vous rebasez vos petites branches en local, tout va bien. Mais attention, si vous rebasez une branche qui se trouve déjà sur le serveur, c'est la catastrophe. Vous allez pourrir l'historique de tous vos coworkeurs, qui s'empresseront de vous couvrir de goudron et de plume avant d'essayer de vous vendre aux abattoirs d'un KFC. Illustration. v
  8. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile
  9. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile
  10. En gros le rebase : faut voir ça comme une pile qu’on dépile et rempile