SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Introduction à git
Nathalie et Marie-Jo, 10 juillet 2013
Objectif
Connaître l'environnement
Pratiquer une utilisation de base
Prérequis
Utiliser un gestionnaire de version
Amener son portable avec git installé
INTRODUCTION
Logiciel de gestion décentralisée de version
DSCM (Distributed Source Code Management)
→ chaque version locale de travail a son repository
INTRODUCTION
Logiciel de gestion décentralisée de version
DSCM (distributed Source Code Management)
→ chaque version locale de travail a son repository
Développé en 2005 par Linus Torvald pour le noyau Linux
3 zones locales
GIT gère 3 zones : le répertoire Git, le répertoire de travail et la zone d'index.
add,
remove,
rename
La zone index permet de préparer progressivement un commit.
INTRODUCTION
CVS SVN GIT
centralized centralised Decentralized
Name based Release based Hash based
Limited merge
capabilities
Designed for merge
Bad ancestry
(each commit increase
version number)
Steep learning curve
Devient le standard actuel
Sous Ubuntu, installer le meta-paquet git-all
INTRODUCTION
Pourquoi cette difficulté d'apprentissage alors même que l'on connaît SVN ?
● une difficulté supplémentaire à gérer avec la gestion de différents repositories
● Une zone nouvelle à gérer localement : 'staging area'
● des commandes avec des noms pas très explicites (exemple checkout = switch,
add pour ajouter un fichier ou résoudre un conflit, reset …)
● l'impression que le retour en arrière n'est pas si facile
➢ amène à appréhender différemment le changement :
passer d'une vision chronologique à une vision topographique
(graphe de commits manipulable)
« You'll know you have reach a Zen plateau of branching wisdom
when your mind contains only commit topologies »
➢ amène aussi à changer sa façon de travailler :
• faire de petits commits que l'on peut modifier et
qui génèrent des conflits plus simples à gérer
• retravailler l'historique pour simplifier le graphe
• utiliser les branches
FRONT-END : git <command> [<args>]
Configuration
$ git config --global user.name "Your Name Comes Here"
$ git config --global user.email you@yourdomain.example.com
Bob importe un projet
$ tar xzf project.tar.gz
$ cd project
$ git init
$ git add .
$ git commit
Faire des modifications
$ git add file1 file2 file3
$ git status
$ git commit -a
Voir l'historique
$ git log
Gérer des branches
$ git branch experimental
$ git branch (liste toutes les branches existantes)
$ git checkout experimental
(edit file)
$ git commit -a
$ git checkout master
(edit file)
$ git commit -a
$ git merge experimental
$ git diff (to see conflict)
(edit file to resolve conflict)
$ git commit -a
$ git branch -d experimental (ensure that the changes are
in the current branch)
ou Bob clone le projet d'Alice
$ git clone /url/alice/project project
Alice récupère le projet
alice$ git pull /url/bob/project master
Un aperçu des commandes
. configuration : config
. initialisation : init, clone
. travail local : add, remove, rename, status, diff, commit, show
. gérer le graphe : merge, rebase, squash, cherry-pick, revert, checkout (se déplacer)
. diversifier le développement : branch, merge
. référencer : tag
. communiquer avec d'autres repositories : push, pull, fetch
. revenir en arrière : reflog, reset
. doc : help
Statistiques d'utilisation
des commandes
par un utilisateur averti
BACKEND : orienté contenu
CVS et SVN orienté 'delta storage files'
GIT orienté snapshot storage (à chaque commit, tout le contenu est stocké)
ORGANISATION DES DONNEES
4 types d'objets dans Git :
● Blob (Binary Large Object) : contenu d'un fichier
● Tree : liste de références vers sous-arbres et blobs
● Commit : pointe sur un tree + références vers parents (au moins un) + métadonnées
● Tag : pointeur sur un commit + métadonnées
Certains pointeurs sont déplacés par Git (master, branches), d'autres sont fixes (tag)
Chaque objet est identifié par un hash code : somme de contrôle SHA1 (40 caractères)
GRAPHE DE COMMIT
Current commit (HEAD)
tag
Local branch master
Remote branch master on origin
Remote branch dormeur on origin
Local branch VersLibres
c
Commit message
Local branch VersLibres
DESIGNATION DES COMMITS
Possibilités de nommer les commits dans les commandes de différentes façons
<nom de branche> : alias pour le commit le plus récent de la branche
<tag> : alias de branche, jamais déplacé
<SHA-1> : si non ambigu, le début du code suffit
<nom>^ : père du commit
<nom>^n : nème
parent (si parents multiples)
<nom>~ : ancètre du dernier commit
<nom>~n : nème
ancêtre (HEAD~2=HEAD^^)
...
Tout commit non référencé (dangling ou detached HEAD) est détruit par le garbage collector.
STOCKAGE
Configuration globale utilisateur (user, email, editor, alias, merge tool …)
→ ~/.gitconfig
$ git config --global color.ui true
Par projet, un répertoire à la racine de l'arborescence du projet contient tout !
→ <PROJECT>/.git
OUTILS ASSOCIES : gitk
OUTILS ASSOCIES : git gui
Unlike gitk, git gui focuses on commit generation and single file annotation and does not
show project history
OUTILS ASSOCIES
Github.com : service web d'hébergement et de gestion de développement de
logiciels, utilisant le programme Git
D'autres environnements existent : git-cola, smartgit, gitg, giggle ...
WORKFLOW
Git flow
GitHub flow (beaucoup plus simple)
→ anything in the master branch is deployable
→ to work on something new, create a descriptively named branch off of master
→ commit to that branch locally and regularly push your work to the same names branch on the server
→ when you need feedback or help, or you think the branch is ready for merging, open a pull request
→ after someone else has reviewed and signed off on the feature you can merge it into the master
→ once it is merged and pushed to 'master', you can and should deploy immediately
Que du bon ?
Quelques points faibles
● Git encombrant sur Microsoft Windows
● l'historique peut grandir très vite et très fort (attention avec fichiers binaires)
● les sous-répertoire vides ne peuvent pas être suivis
● noms ou utilisation de commandes parfois déroutantes pour démarrer
● marquer qui modifie quoi
Les utilisateurs semblent enthousiastes !
Communauté d'utilisateurs vivantes, beaucoup de tutoriels sur le net.
Quelques références
Site officiel : http://git-scm.com/
Livre 'Pro Git' de Scott Chacon : http://git-scm.com/book/fr/
Apprendre Git en interactif en 15 mn : http://try.github.io/levels/1/challenges/1
Apprendre Git : http://www.codeschool.com/courses/try-git ,
http://www.codeschool.com/courses/git-real ,
http://www.codeschool.com/courses/git-real-2
Guide tour : http://gitimmersion.com/
Référence des commandes : http://gitref.org/
Description interactive des commandes :
http://ndpsoftware.com/git-cheatsheet.html#loc=local_repo;
TP : http://nathalievilla.org/spip.php?article91
Commandes
http://ndpsoftware.com/git-cheatsheet.html#loc=local_repo;

Contenu connexe

Similaire à Introduction à git.pdf

Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitIppon
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...akramalidrissi1
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfSimpleLearn1
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
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
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueRossi Oddet
 
Eclipse DemoCamp 2011 @ Nantes: EGit
Eclipse DemoCamp 2011 @ Nantes: EGitEclipse DemoCamp 2011 @ Nantes: EGit
Eclipse DemoCamp 2011 @ Nantes: EGitpcdavid_
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 

Similaire à Introduction à git.pdf (20)

Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur Git
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 
Git
GitGit
Git
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
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
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratique
 
Eclipse DemoCamp 2011 @ Nantes: EGit
Eclipse DemoCamp 2011 @ Nantes: EGitEclipse DemoCamp 2011 @ Nantes: EGit
Eclipse DemoCamp 2011 @ Nantes: EGit
 
Git
GitGit
Git
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptx
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 

Plus de badrfathallah2

Java-Design-Patterns.pdf
Java-Design-Patterns.pdfJava-Design-Patterns.pdf
Java-Design-Patterns.pdfbadrfathallah2
 
design_pattern_tutorial.pdf
design_pattern_tutorial.pdfdesign_pattern_tutorial.pdf
design_pattern_tutorial.pdfbadrfathallah2
 
hibernate_tutorial.pdf
hibernate_tutorial.pdfhibernate_tutorial.pdf
hibernate_tutorial.pdfbadrfathallah2
 
LE PROCESSUS DE GESTION DES HABILITATIONS.pdf
LE PROCESSUS DE GESTION DES HABILITATIONS.pdfLE PROCESSUS DE GESTION DES HABILITATIONS.pdf
LE PROCESSUS DE GESTION DES HABILITATIONS.pdfbadrfathallah2
 
INTRODUCTION A LA FINANCE DE MARCHE.pdf
INTRODUCTION A LA FINANCE DE MARCHE.pdfINTRODUCTION A LA FINANCE DE MARCHE.pdf
INTRODUCTION A LA FINANCE DE MARCHE.pdfbadrfathallah2
 
Collatéral_Management.pdf
Collatéral_Management.pdfCollatéral_Management.pdf
Collatéral_Management.pdfbadrfathallah2
 
Cash_management_et_paiements.pdf
Cash_management_et_paiements.pdfCash_management_et_paiements.pdf
Cash_management_et_paiements.pdfbadrfathallah2
 
Gestion de projets agiles avec Scrum.pdf
Gestion de projets agiles avec Scrum.pdfGestion de projets agiles avec Scrum.pdf
Gestion de projets agiles avec Scrum.pdfbadrfathallah2
 
Introduction à Spring.pdf
Introduction à Spring.pdfIntroduction à Spring.pdf
Introduction à Spring.pdfbadrfathallah2
 
La Gestion de Projet.pdf
La Gestion de Projet.pdfLa Gestion de Projet.pdf
La Gestion de Projet.pdfbadrfathallah2
 
A Tutorial for GitHub.pdf
A Tutorial for GitHub.pdfA Tutorial for GitHub.pdf
A Tutorial for GitHub.pdfbadrfathallah2
 
JIRA Fundamentals Course.pdf
JIRA Fundamentals Course.pdfJIRA Fundamentals Course.pdf
JIRA Fundamentals Course.pdfbadrfathallah2
 

Plus de badrfathallah2 (19)

Java-Design-Patterns.pdf
Java-Design-Patterns.pdfJava-Design-Patterns.pdf
Java-Design-Patterns.pdf
 
design_pattern_tutorial.pdf
design_pattern_tutorial.pdfdesign_pattern_tutorial.pdf
design_pattern_tutorial.pdf
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
hibernate_tutorial.pdf
hibernate_tutorial.pdfhibernate_tutorial.pdf
hibernate_tutorial.pdf
 
Les Processus IAM.pdf
Les Processus IAM.pdfLes Processus IAM.pdf
Les Processus IAM.pdf
 
LE PROCESSUS DE GESTION DES HABILITATIONS.pdf
LE PROCESSUS DE GESTION DES HABILITATIONS.pdfLE PROCESSUS DE GESTION DES HABILITATIONS.pdf
LE PROCESSUS DE GESTION DES HABILITATIONS.pdf
 
PrésQL.pdf
PrésQL.pdfPrésQL.pdf
PrésQL.pdf
 
INTRODUCTION A LA FINANCE DE MARCHE.pdf
INTRODUCTION A LA FINANCE DE MARCHE.pdfINTRODUCTION A LA FINANCE DE MARCHE.pdf
INTRODUCTION A LA FINANCE DE MARCHE.pdf
 
Collatéral_Management.pdf
Collatéral_Management.pdfCollatéral_Management.pdf
Collatéral_Management.pdf
 
Cash_management_et_paiements.pdf
Cash_management_et_paiements.pdfCash_management_et_paiements.pdf
Cash_management_et_paiements.pdf
 
Scrumguide.pdf
Scrumguide.pdfScrumguide.pdf
Scrumguide.pdf
 
Gestion de projets agiles avec Scrum.pdf
Gestion de projets agiles avec Scrum.pdfGestion de projets agiles avec Scrum.pdf
Gestion de projets agiles avec Scrum.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
Introduction à Spring.pdf
Introduction à Spring.pdfIntroduction à Spring.pdf
Introduction à Spring.pdf
 
SVN Tutorial.pdf
SVN Tutorial.pdfSVN Tutorial.pdf
SVN Tutorial.pdf
 
La Gestion de Projet.pdf
La Gestion de Projet.pdfLa Gestion de Projet.pdf
La Gestion de Projet.pdf
 
A Tutorial for GitHub.pdf
A Tutorial for GitHub.pdfA Tutorial for GitHub.pdf
A Tutorial for GitHub.pdf
 
JIRA-Tutorial-pdf.pdf
JIRA-Tutorial-pdf.pdfJIRA-Tutorial-pdf.pdf
JIRA-Tutorial-pdf.pdf
 
JIRA Fundamentals Course.pdf
JIRA Fundamentals Course.pdfJIRA Fundamentals Course.pdf
JIRA Fundamentals Course.pdf
 

Dernier

Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogneidelewebmestre
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueidelewebmestre
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesangevaleryn
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxdocteurgyneco1
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresidelewebmestre
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 
La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0ourssoula
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...idelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 

Dernier (20)

Agrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en DordogneAgrivoltaïsme et filière ovine en Dordogne
Agrivoltaïsme et filière ovine en Dordogne
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
 
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniquesChapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptxSupport de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 
La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0La logistique a L'ère de l'industrie 4.0
La logistique a L'ère de l'industrie 4.0
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 

Introduction à git.pdf

  • 1. Introduction à git Nathalie et Marie-Jo, 10 juillet 2013 Objectif Connaître l'environnement Pratiquer une utilisation de base Prérequis Utiliser un gestionnaire de version Amener son portable avec git installé
  • 2. INTRODUCTION Logiciel de gestion décentralisée de version DSCM (Distributed Source Code Management) → chaque version locale de travail a son repository
  • 3. INTRODUCTION Logiciel de gestion décentralisée de version DSCM (distributed Source Code Management) → chaque version locale de travail a son repository Développé en 2005 par Linus Torvald pour le noyau Linux
  • 4. 3 zones locales GIT gère 3 zones : le répertoire Git, le répertoire de travail et la zone d'index. add, remove, rename La zone index permet de préparer progressivement un commit.
  • 5. INTRODUCTION CVS SVN GIT centralized centralised Decentralized Name based Release based Hash based Limited merge capabilities Designed for merge Bad ancestry (each commit increase version number) Steep learning curve Devient le standard actuel Sous Ubuntu, installer le meta-paquet git-all
  • 6. INTRODUCTION Pourquoi cette difficulté d'apprentissage alors même que l'on connaît SVN ? ● une difficulté supplémentaire à gérer avec la gestion de différents repositories ● Une zone nouvelle à gérer localement : 'staging area' ● des commandes avec des noms pas très explicites (exemple checkout = switch, add pour ajouter un fichier ou résoudre un conflit, reset …) ● l'impression que le retour en arrière n'est pas si facile ➢ amène à appréhender différemment le changement : passer d'une vision chronologique à une vision topographique (graphe de commits manipulable) « You'll know you have reach a Zen plateau of branching wisdom when your mind contains only commit topologies » ➢ amène aussi à changer sa façon de travailler : • faire de petits commits que l'on peut modifier et qui génèrent des conflits plus simples à gérer • retravailler l'historique pour simplifier le graphe • utiliser les branches
  • 7. FRONT-END : git <command> [<args>] Configuration $ git config --global user.name "Your Name Comes Here" $ git config --global user.email you@yourdomain.example.com Bob importe un projet $ tar xzf project.tar.gz $ cd project $ git init $ git add . $ git commit Faire des modifications $ git add file1 file2 file3 $ git status $ git commit -a Voir l'historique $ git log Gérer des branches $ git branch experimental $ git branch (liste toutes les branches existantes) $ git checkout experimental (edit file) $ git commit -a $ git checkout master (edit file) $ git commit -a $ git merge experimental $ git diff (to see conflict) (edit file to resolve conflict) $ git commit -a $ git branch -d experimental (ensure that the changes are in the current branch) ou Bob clone le projet d'Alice $ git clone /url/alice/project project Alice récupère le projet alice$ git pull /url/bob/project master
  • 8. Un aperçu des commandes . configuration : config . initialisation : init, clone . travail local : add, remove, rename, status, diff, commit, show . gérer le graphe : merge, rebase, squash, cherry-pick, revert, checkout (se déplacer) . diversifier le développement : branch, merge . référencer : tag . communiquer avec d'autres repositories : push, pull, fetch . revenir en arrière : reflog, reset . doc : help Statistiques d'utilisation des commandes par un utilisateur averti
  • 9. BACKEND : orienté contenu CVS et SVN orienté 'delta storage files' GIT orienté snapshot storage (à chaque commit, tout le contenu est stocké)
  • 10. ORGANISATION DES DONNEES 4 types d'objets dans Git : ● Blob (Binary Large Object) : contenu d'un fichier ● Tree : liste de références vers sous-arbres et blobs ● Commit : pointe sur un tree + références vers parents (au moins un) + métadonnées ● Tag : pointeur sur un commit + métadonnées Certains pointeurs sont déplacés par Git (master, branches), d'autres sont fixes (tag) Chaque objet est identifié par un hash code : somme de contrôle SHA1 (40 caractères)
  • 11. GRAPHE DE COMMIT Current commit (HEAD) tag Local branch master Remote branch master on origin Remote branch dormeur on origin Local branch VersLibres c Commit message Local branch VersLibres
  • 12. DESIGNATION DES COMMITS Possibilités de nommer les commits dans les commandes de différentes façons <nom de branche> : alias pour le commit le plus récent de la branche <tag> : alias de branche, jamais déplacé <SHA-1> : si non ambigu, le début du code suffit <nom>^ : père du commit <nom>^n : nème parent (si parents multiples) <nom>~ : ancètre du dernier commit <nom>~n : nème ancêtre (HEAD~2=HEAD^^) ... Tout commit non référencé (dangling ou detached HEAD) est détruit par le garbage collector.
  • 13. STOCKAGE Configuration globale utilisateur (user, email, editor, alias, merge tool …) → ~/.gitconfig $ git config --global color.ui true Par projet, un répertoire à la racine de l'arborescence du projet contient tout ! → <PROJECT>/.git
  • 15. OUTILS ASSOCIES : git gui Unlike gitk, git gui focuses on commit generation and single file annotation and does not show project history
  • 16. OUTILS ASSOCIES Github.com : service web d'hébergement et de gestion de développement de logiciels, utilisant le programme Git D'autres environnements existent : git-cola, smartgit, gitg, giggle ...
  • 17. WORKFLOW Git flow GitHub flow (beaucoup plus simple) → anything in the master branch is deployable → to work on something new, create a descriptively named branch off of master → commit to that branch locally and regularly push your work to the same names branch on the server → when you need feedback or help, or you think the branch is ready for merging, open a pull request → after someone else has reviewed and signed off on the feature you can merge it into the master → once it is merged and pushed to 'master', you can and should deploy immediately
  • 18. Que du bon ? Quelques points faibles ● Git encombrant sur Microsoft Windows ● l'historique peut grandir très vite et très fort (attention avec fichiers binaires) ● les sous-répertoire vides ne peuvent pas être suivis ● noms ou utilisation de commandes parfois déroutantes pour démarrer ● marquer qui modifie quoi Les utilisateurs semblent enthousiastes ! Communauté d'utilisateurs vivantes, beaucoup de tutoriels sur le net.
  • 19. Quelques références Site officiel : http://git-scm.com/ Livre 'Pro Git' de Scott Chacon : http://git-scm.com/book/fr/ Apprendre Git en interactif en 15 mn : http://try.github.io/levels/1/challenges/1 Apprendre Git : http://www.codeschool.com/courses/try-git , http://www.codeschool.com/courses/git-real , http://www.codeschool.com/courses/git-real-2 Guide tour : http://gitimmersion.com/ Référence des commandes : http://gitref.org/ Description interactive des commandes : http://ndpsoftware.com/git-cheatsheet.html#loc=local_repo; TP : http://nathalievilla.org/spip.php?article91