git pour les (pas si) nuls
DESCRIPTION
Git introductionTRANSCRIPT
![Page 1: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/1.jpg)
GitPour les (pas si) nuls
![Page 2: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/2.jpg)
Générique
MoiChez
LicenceTrouvez
pres
Sources
@malk_zameth@linagoraCC-BY-SA 3.0slideshare.net/malk_zameth/git-pour-les-pas-si-nuls● The Friendly Manual● Pro Git● kernel.
org/pub/software/scm/git/docs/gitworkflows.html
● rogerdudler.github.com/git-guide/
![Page 3: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/3.jpg)
Partie I: Intro
![Page 4: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/4.jpg)
Qu'est-ce?
![Page 5: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/5.jpg)
Contrôle de version (VCS)Mais c'est quoi "contrôle de version"?
![Page 6: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/6.jpg)
Gestion de l'information dans le temps
c-a-d.?
![Page 7: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/7.jpg)
Mémoire de ce qu'on a fait
Un grand archive de copies donc?
![Page 8: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/8.jpg)
Grand archive organisant automatiquement
Je lui delegue la memoire de ce que mes fichiers on été.
![Page 9: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/9.jpg)
DistribuéJe controle mes versions en local et à distance (nul
maître)
![Page 10: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/10.jpg)
Synchro fichierremplaçant RSync
![Page 11: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/11.jpg)
Transfert fichierremplaçant ftp
![Page 12: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/12.jpg)
Pourquoi utiliser un VCS?Je gagne quoi moi?
![Page 13: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/13.jpg)
Ne pas perdre le passéComme le "de-faire" et "re-faire" de mon editeur.
Mais pour toujours.
![Page 14: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/14.jpg)
Visualiser le changementVoire comment un fichier a changé, ce qu'a été fait.
![Page 15: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/15.jpg)
Arreter de faire la même chose a la main
le massacre des .oldles copies de dossier sous-le-coude
![Page 16: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/16.jpg)
Avoir plusieurs versions de vos idées qui co-
existentc'est le cas dans votre tête déjà, mettez sur fichier!
![Page 17: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/17.jpg)
Pourquoi utiliser un DVCS?Quel gain d'un Git/Hg/Bz sur un SVN ?
![Page 18: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/18.jpg)
“Aucun homme n'est une île, un tout, complet en
soi”Jhon Donne
![Page 19: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/19.jpg)
Faciliter la collaborationJe partage directement avec toi ce que nous avons en
commum.
![Page 20: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/20.jpg)
Plus de commits en pratique
Je peux commiter sans impacter personne, sans que ça se voit, je peux editer/delester/regrouper mes commits avant de publier : donc je le fait plus
souvent.
![Page 21: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/21.jpg)
Decouple VCS de l'accès à l'infra
Je commite dans l'avion, dans le train, pendant que mon serveur est hors service.
![Page 22: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/22.jpg)
Decouple VCS de l'Existance de l'infra
Je peux utiliser sans jamais avoir un serveur quelque part. Où avant qu'il soit prêt.
![Page 23: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/23.jpg)
Pourquoi utiliser Git?plutôt qu'un autre DVCS ?
![Page 24: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/24.jpg)
PuissancePlein (il faut admettre: trop), de fonctionalités.
![Page 25: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/25.jpg)
VitesseGit et Hg sont les deux allucinants et personne les bat.
![Page 26: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/26.jpg)
SimplicitéNe pas confondre avec "faible courbe d'aprentissage".
C'est l'invèrse du jeu d'échecs.
![Page 27: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/27.jpg)
SécuriséOn peut utiliser/obliger les clefs SSH pour ecrire sur un
depot et/ou lire.
![Page 28: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/28.jpg)
Devenu lingua francaEn 2009 persone m'aurait convaincu que j'écrirais ça un
jour
![Page 29: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/29.jpg)
GitHubCar le reseau social est une bonne idéee aussi pour le
travail.
![Page 30: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/30.jpg)
Où utiliser Git?
![Page 31: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/31.jpg)
Sur chaque fichier qui sera édité.
Toujours.Pas d'exceptions.
![Page 32: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/32.jpg)
Quand utiliser git?
![Page 33: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/33.jpg)
À chaque édition.Toujours.
Pas d'exceptions.
![Page 34: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/34.jpg)
Qui doit utiliser Git?
![Page 35: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/35.jpg)
Cette présentation vise deux publiques.
![Page 36: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/36.jpg)
Tout être humain voulant "chercher bonheur".Vous éditez des fichiers? Continuons donc!
![Page 37: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/37.jpg)
Tout être humain voulant "gêrer des projets"
Vous produisez des fichiers en équipe? Continuons donc!
![Page 38: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/38.jpg)
Comment utiliser Git?
![Page 39: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/39.jpg)
Partie II: Git tout seul dans sa machine sans
connectionOui ça vaut largement déjà le coup!
![Page 40: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/40.jpg)
Il faut un client gitTrois parfums
![Page 41: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/41.jpg)
Vous êtes dev?Vous avez donc déjà un Environnement de Dev?
![Page 42: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/42.jpg)
Intégrez Git a votre Environnement!
Eclipse: EgitEmacs: Magit
Vim: vim-fugitiveSublime Text 2: sublime-text-2-git
![Page 43: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/43.jpg)
Pas Dev; pas peur du terminal?
![Page 44: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/44.jpg)
La ligne de commande est votre amie.
git tout court donc, dans toute sa puissance.
![Page 45: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/45.jpg)
Et si j'ai peur du terminal?
![Page 46: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/46.jpg)
Dans cette présentation je vous prends par la main
et peut être après vous n'aurez plus peur.
![Page 47: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/47.jpg)
Et si après j'ai toujours peur du terminal?
![Page 48: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/48.jpg)
git-colaou bien gitg, giggle, gitk+git-gui etc.
![Page 49: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/49.jpg)
Pas à paspour apprendre git, il vaut mieux utiliser un peu
![Page 50: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/50.jpg)
Créez un repertoire de test
la où vous voulez, disons:mkdir -p ~/git-test; cd ~/git-test
![Page 51: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/51.jpg)
Créez un fichier de votre choix
votre oeuvre litteraire a vous, un programme, disons:echo "mon merveilleux fichier" > test.txt
![Page 52: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/52.jpg)
git initon dit a git "Interesse toi a ce répértoire et ces sous-
répértoires"
![Page 53: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/53.jpg)
Nous avons maintenant un .git
ls .git donne quoi?
![Page 54: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/54.jpg)
HEADLibellé comme un autre.
point "le plus a jour", le "present" le "dernier commit".
![Page 55: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/55.jpg)
git statusquel est ma situation actuelle?
![Page 56: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/56.jpg)
Mon fichier n'est pas encore pris en compte par
git!
![Page 57: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/57.jpg)
git commitJ'ai fait des modifications/ajouts et veux que ils soient
pris en compte.
![Page 58: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/58.jpg)
Erreur!git connais pas le fichier.
![Page 59: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/59.jpg)
Commit a deux étapes
![Page 60: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/60.jpg)
d'abord on un indexe des changements
on apelle ça "stage":J'ai fait des changements, garde les dans le
colimateur, il a d'autres fortement associés que je dois finir.
![Page 61: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/61.jpg)
git add <nom du fichier>disons git add test.txt.
notez que le message de git status change.
![Page 62: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/62.jpg)
puis:git commit
J'ai fini un sous ensemble de modifications qui sont liés, je veux donner a eux une description.
![Page 63: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/63.jpg)
On peut faire plusieurs stage sur le même fichier
![Page 64: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/64.jpg)
Et si le concept même de stage ne me sert a rien?
![Page 65: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/65.jpg)
git commit -ane m'embete pas avec le stage et commite mes
changements
![Page 66: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/66.jpg)
A vous de jugezil n'y a pas de "meilleure" manière, le stage est un outil
optionnel a utiliser ou a oublier.
![Page 67: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/67.jpg)
Que contient le passé de mon projet?
![Page 68: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/68.jpg)
git logles gros chiffres incomprehensibles? identifiants
uniques!
![Page 69: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/69.jpg)
Messages de commit: fil d'Arianne vers le passé
![Page 70: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/70.jpg)
Qu'ai je fait moi dans ce passé?
![Page 71: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/71.jpg)
git log --author
![Page 72: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/72.jpg)
Qu'a été fait depuis hier?
![Page 73: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/73.jpg)
git log --since "yesterday"
![Page 74: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/74.jpg)
memorisez le moins possible
![Page 75: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/75.jpg)
Notez les commandes qui vous sont utiles
qui vous utilisez vraiment
![Page 76: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/76.jpg)
donnez des noms a ces commandes
de noms à vous, personnels que votre cerveau souviendra
![Page 77: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/77.jpg)
git config alias.<nom> <commande>
git config alias.st statusgit config alias.lg "log --pretty=oneline --abbrev-
commit --graph --decorate"l'option --global les mets dans votre fichier de conf à
vous
![Page 78: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/78.jpg)
Voir le passé
![Page 79: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/79.jpg)
git show <version>:<nom du fichier>
git show HEAD~3:test.txt
![Page 80: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/80.jpg)
Voire les differences entre les fichiers actuels
et HEAD
![Page 81: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/81.jpg)
git diff
![Page 82: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/82.jpg)
Entre l'actuel est un point du passé
![Page 83: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/83.jpg)
git diff <version>git diff head~3
![Page 84: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/84.jpg)
Entre deux points du passé
![Page 85: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/85.jpg)
git diff <version>..<version>
git diff HEAD~3..HEAD~4
![Page 86: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/86.jpg)
Comment Ré-écrire l'histoire?
![Page 87: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/87.jpg)
Je veux oublier des changements
![Page 88: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/88.jpg)
git reset <version>Ne Jamais faire sur quelque chose qu'on publie. On ne
réecrit pas de l'histoire déjà racconté!
![Page 89: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/89.jpg)
Je veux regrouper des changements
![Page 90: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/90.jpg)
git rebase -i <version>Aussi a ne faire que si on a pas publié l'info.
![Page 91: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/91.jpg)
Je oublier des changements en indiquant
bien cela comme une action
![Page 92: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/92.jpg)
git revert <version a oublier>
![Page 93: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/93.jpg)
Petit commits frequents : plus de souplesse et
pouvoiron peut mieux choisir quoi reverter dans le futur
on peut toujours regrouper des petits commits dans un seul plus grand (squash)
![Page 94: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/94.jpg)
les numero de version unique sont indigestes
Je veux donner un nom a une version spécifique
![Page 95: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/95.jpg)
git tag <nom de la version>
git tag 1.0git tag publiee_dans_la_newsletter_octobre_2012
![Page 96: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/96.jpg)
Je veux travailler avec plusieurs visions du même
documentau même temps
![Page 97: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/97.jpg)
les branches
![Page 98: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/98.jpg)
git branch <branche>fait la creation de la branche, a partir de HEAD
Ne va PAS a la branche
![Page 99: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/99.jpg)
git checkout <branche>change de branche, va la branche choisie
![Page 100: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/100.jpg)
cela prête à confusionOn peut un jur creer une branche et oublier de
changer vers elle, faire des bêtises!
![Page 101: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/101.jpg)
git checkout -b <branche>fait la creation de la branche et immediatement
change de branche (faites en un alias, utilisez toujours comme ça)
![Page 102: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/102.jpg)
Consolider des branches en une seule
![Page 103: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/103.jpg)
git merge <branche a merger sur l'actuelle>
![Page 104: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/104.jpg)
pas envie de garder la branche?
![Page 105: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/105.jpg)
git branch -d <branche a effacer>
on a pas besoin de griller des neurones a inventer de tres bons nos pour des branches temporaires qu'on
effacera juste après
![Page 106: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/106.jpg)
On a toujours une branche
celle par defaut s'apelle master
![Page 107: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/107.jpg)
Utilisez de branches!
![Page 108: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/108.jpg)
Utilisez-les souvent!avant de demarrer chaque nouvelle direction dans les
fichier du projet; chaque nouvelle idée; chaque nouvelle demande.
![Page 109: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/109.jpg)
Pourquoi?
![Page 110: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/110.jpg)
Jongle entre une version connue et celle en cours
très vite
![Page 111: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/111.jpg)
idées et experimentationsdans un coin prévu.
![Page 112: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/112.jpg)
gestion de version sur les idées
que je peux, finalement, abandoner sans rien toucher de mon historique
![Page 113: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/113.jpg)
J'évite une infinité de problèmes.
99% des fois que j'aide quelqu'un avec un "problème" sur git: le problème n'aurait jamais existé si la
personne au depart de son changement avait crée une branche!
![Page 114: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/114.jpg)
Partie III : Git avec des remotes"serveurs distants"
![Page 115: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/115.jpg)
prendre une copie d'un depot distant
elle deviendra locale, une reference au depot distant sera faite sur le nom par defaut origin
![Page 116: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/116.jpg)
git clone <url du depot>git clone https://github.com/malk/git-playback.git
![Page 117: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/117.jpg)
ajouter un remotepour les même projet on peut avoir beaucoup
genre un du client, un pour chaque collaborateur, etc.
![Page 118: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/118.jpg)
git remote add <nom> <url>
git remote add mmozuras https://github.com/mmozuras/git-playback.git
![Page 119: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/119.jpg)
On a nos remotes
![Page 120: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/120.jpg)
prendre les changements distants
copies à coté, mes fichiers ne changent pas
![Page 121: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/121.jpg)
git fetch <remote> <branche>
git fetch mmozuras master
![Page 122: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/122.jpg)
Incorporer des changements distants
déjà récupérés par un fetch
![Page 123: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/123.jpg)
On sait déjà faire ça!c'est une branche comme une autre!
![Page 124: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/124.jpg)
On fait un merge!
![Page 125: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/125.jpg)
git merge origin/masterje merge la branche master dans origin ( origin/master ) dans ma branche actuelle (je choisit l'actuelle avec
un checkout)
![Page 126: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/126.jpg)
On ne merge que la version déjà "fetché"
si on oublie le fetch on merge une version peut etre déjà vieille
![Page 127: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/127.jpg)
Confusion possiblecomment éviter?
![Page 128: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/128.jpg)
git pull <remote> <branche>git pull origin master
fait un fetch puis un merge: plus d'oubli.
![Page 129: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/129.jpg)
Incorporer changements locaux dans branche
distanteSi nous avons les permissions!
![Page 130: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/130.jpg)
git push <remote> <branche>
git push --tags origin masterl'option tags fait un push des tags créees aussi
![Page 131: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/131.jpg)
Avant tout push
● Un petit git status○ Suis-je au bon endroit? sinon checkout.○ Il manque quelquechose a comitter? on ne push que
HEAD!● Je fait un pull de la branche distante● J'incorpore tout, événtuel, changement● resout tout, éventuel, conflit: les
commiter.● C'est bon je peux "pusher".Suivez cette checklist ça vous évitera des soucis!
![Page 132: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/132.jpg)
Partie IV : Gestion de projet
On doit produire de choses ensemble: évitons le chaos
![Page 133: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/133.jpg)
Workflow
![Page 134: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/134.jpg)
Processus de travailComment j'enchaine les diverses étapes de travail pour
produire.
![Page 135: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/135.jpg)
Plusieurs VCS contrainent ou forcent un workflow
![Page 136: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/136.jpg)
Git permet une infinitéun aperçu kernel.
org/pub/software/scm/git/docs/gitworkflows.html
![Page 137: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/137.jpg)
Dont plusieurs incompatibles!
![Page 138: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/138.jpg)
Si vous ne choisissez pas un workflow pour vous
![Page 139: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/139.jpg)
Vous avez un sans se rendre compte, naturellement
Ou peut être plusieurs!
![Page 140: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/140.jpg)
Si vous ne choisissez pas un pour votre équipe
![Page 141: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/141.jpg)
Vous avez surement déjà plusieurs!
J'espere qu'ils soient tous compatibles! La chance!
![Page 142: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/142.jpg)
Cela peut engendrer dès problèmes
![Page 143: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/143.jpg)
Trouvez donc un workflow!
Deux bonnes heures bien investies!Je peux vous aider au pire.
![Page 144: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/144.jpg)
Definissez les phases de vie de votre production
Création? Consolidation? mise en prod? hotfix? quoi d'autre?
Tout ça ça deviens de branches.
![Page 145: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/145.jpg)
Definissez les intercations entre ces phases
et transformez-les en alias/script git avec des noms qu'ont un sens pour votre équipe.
![Page 146: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/146.jpg)
Et vous aurez un workflowmon point de départ favori:
http://nvie.com/posts/a-successful-git-branching-model/
![Page 147: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/147.jpg)
Quel commit a inséré ce bug?
![Page 148: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/148.jpg)
git bisecton declare des versions comme ayant ou pas le bug (on teste a chaque fois) et par dichotomie ils nous aide a
retrouver la version qu'a inseré le bug
![Page 149: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/149.jpg)
Qui a inseré cette ligne dans le fichier?
![Page 150: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/150.jpg)
git blameDonne auteur par ligne (--L pour limiter les lignes)
![Page 151: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/151.jpg)
Où a-t-on écrit tel truc? Entre mes fichiers au sein d'un projet?
![Page 152: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/152.jpg)
git grepcomme grep, mais dans l'arbre de fichiers controlé par
git
![Page 153: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/153.jpg)
Voire l'effet des commits de quelqu'un comme un slideshow de son travail
![Page 154: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/154.jpg)
git playbackhttps://github.com/mmozuras/git-playbackgénère un fichier html avec un tel slideshow
![Page 155: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/155.jpg)
Aprendre git a resoudre un conflit d'une manière
comme on a déjà fait avant
l'apprendre a suivre nos habitudes et donc économiser du temps.
![Page 156: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/156.jpg)
git ReReRefaut d'abord activer
git config --global rerere.enabled 1après ça la commande marche
![Page 157: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/157.jpg)
ouvrir un serveur http tournant une page en
navigation de l'arborescence d'un depot
git
![Page 158: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/158.jpg)
git instaweb(j'avais dit: trop ;)
![Page 159: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/159.jpg)
Devenir un pro du git
![Page 160: Git pour les (pas si) nuls](https://reader033.vdocuments.site/reader033/viewer/2022061515/5586be46d8b42a315c8b467b/html5/thumbnails/160.jpg)