Système de contrôle de
versions, open-source,
décentralisé, conçus pour être
efficace et rapide.
Slide 13
Slide 13 text
Système de contrôle de
versions, open-source,
décentralisé, conçus pour être
efficace et rapide.
Slide 14
Slide 14 text
Définition(s) ?
C'est un dispositif, en général un logiciel, qui permet de conserver
son travail dans le temps dans toutes les versions qu'on souhaite,
de naviguer dans cet historique, de gérer des divergences et
convergences de variantes et de travailler en équipe sans se
marcher sur les pieds.
intégration
façon communauté
developer
public
developer
public
integration
manager
developer
public
blessed
repository
developer
private
developer
private
developer
private
Slide 31
Slide 31 text
Système de contrôle de
versions, open-source,
décentralisé, conçus pour être
efficace et rapide.
Slide 32
Slide 32 text
GIT est bêtement
une base de données clés/valeurs
écrite en C, donc portable et rapide
qui traque des contenus
Slide 33
Slide 33 text
adapté à
toutes les tailles
d’équipes et de projets
Slide 34
Slide 34 text
Concepts clés
et points forts
2
Slide 35
Slide 35 text
delta vs. snapshot
File A Δ1
File B
File C
Version 1 Version 2 Version 3 Version 4 Version 5
Δ2
Δ1 Δ2
Δ1 Δ2 Δ3
A
B
C
Version 1 Version 2 Version 3 Version 4 Version 5
A1
B
C1
A1
B
C2
A2
B1
C2
A2
B2
C3
File A Δ1
File B
File C
Version 1 Version 2 Version 3 Version 4 Version 5
Δ2
Δ1 Δ2
Δ1 Δ2 Δ3
A
B
C
Version 1 Version 2 Version 3 Version 4 Version 5
A1
B
C1
A1
B
C2
A2
B1
C2
A2
B2
C3
Slide 36
Slide 36 text
historique
commit size
commit size
98ca9..
tree
author
committer
initial commit of my project
0de24
Scott
Scott
commit size
34ac2..
tree
parent
author
committer
fixed bug #1328 - stack
overflow under certain
184ca
98ca9
Scott
Scott
f30ab..
tree
parent
author
committer
add feature #32 - ability to
add new formats to the central
34ac2
Scott
Scott
Snapshot A Snapshot B Snapshot C
92ec2
Slide 37
Slide 37 text
commit • tree • blob
blob size
e8455..
commit size
98ca9..
== LICENSE:
(The MIT License)
Copyright (c) 2007 Tom Preston-
Permission is hereby granted, f
ree of charge, to any person ob
tree
parent
author
committer
my commit message goes here
and it is really, really cool
0de24
nil
Scott
Scott
tree size
10af9..
blob
tree
bc52a
b70f8
mylib.rb
inc
tree size
b70f8..
blob 0ad1a tricks.rb
tree size
0de24..
blob
tree
e8455
10af9
README
lib
blob size
bc52a..
require 'grit/index'
require 'grit/status'
module Grit
class << self
attr_accessor :debug
blob size
0ad1a..
require 'grit/git-ruby/reposi
require 'grit/git-ruby/file_i
module Grit
module Tricks
SHA1
branches & tags
= pointeurs
Snapshot A Snapshot B Snapshot C
98ca9 34ac2 f30ab
master
HEAD
v1.0
Slide 40
Slide 40 text
3 zones
Git Directory
(Repository)
Staging
Area
Working
Directory
stage files
Checkout the project
Commit
Stage files
Slide 41
Slide 41 text
commandes courantes
init
add
rm
mv
status
commit
log
diff
show
branch
checkout
merge
tag
clone
fetch
pull
push
remote
reset
rebase
blame
au moins 1x/semaine
usages atypiques
config système (ex. : /etc)
articles et publications
moteur de wiki
documents partagés dans l’équipe
distribution de ressources
Slide 44
Slide 44 text
Les outils
3
Slide 45
Slide 45 text
Ligne de Commande
l’interface canonique, identique partout
Slide 46
Slide 46 text
GUI autonomes
des clients graphiques spécialisés
GITK GITX Tortoise Git
Slide 47
Slide 47 text
intégration IDE
pour les amateurs du “tout en un”
EGit pour Eclipse IntelliJ IDEA Netbeans
Slide 48
Slide 48 text
Questions
sur Git
4
Slide 49
Slide 49 text
Workflows
et gestion des projets en équipe
5
C’est pas trop tôt
Slide 50
Slide 50 text
problématique
construire un modèle de dev
structurer les branches
fiabiliser les processus de livraison
Slide 51
Slide 51 text
git-flow
un workflow complet
adapté au développement logiciel
pour des équipes structurées
Slide 52
Slide 52 text
Time
release branches
master
develop hot xes
feature
branches
Feature
for future
release
Tag
1.0
Major
feature for
next release
From this point on,
“next release”
means the release
after 1.0
Severe bug
xed for
production:
hot x 0.2
Bug xes from
rel. branch
may be
continuously
merged back
into develop
Tag
0.1
Tag
0.2
Incorporate
bug x in
develop
Only
bug xes!
Start of
release
branch for
1.0
Author: Vincent Driessen
Original blog post: http://nvie.com/archives/323
License: Creative Commons
Slide 53
Slide 53 text
GitHub-flow
beaucoup plus simple
plus de responsablités
adapté aux cycles courts
Slide 54
Slide 54 text
Time
master
feature branches
Author: Vincent Driessen
Original blog post: http://nvie.com/archives/323
License: Creative Commons
Slide 55
Slide 55 text
et pour vous
ça se passe comment ?
Slide 56
Slide 56 text
Ressources
6
Slide 57
Slide 57 text
http://git-scm.com
Slide 58
Slide 58 text
http://whygitisbetterthanx.com/
Slide 59
Slide 59 text
http://progit.org/
Slide 60
Slide 60 text
http://gitimmersion.com/
Slide 61
Slide 61 text
http://gitref.org/
Slide 62
Slide 62 text
Screencasts
Peepcode :
http://peepcode.com/products/git
Destroy All Software :
https://www.destroyallsoftware.com/screencasts/catalog/git-workflow
Slide 63
Slide 63 text
Articles
L’article complet sur git-flow :
http://nvie.com/posts/a-successful-git-branching-model/
Pourquoi vous n’utilisez vous toujours pas git-flow :
http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
Le workflow en vigueur chez GitHub :
http://scottchacon.com/2011/08/31/github-flow.html
Slide 64
Slide 64 text
Formation
Git-Attitude avec Christophe Porteneuve :
http://www.git-attitude.fr/
GitHub Training :
https://github.com/training
Slide 65
Slide 65 text
Crédits
7
Slide 66
Slide 66 text
Scott Chacon et le livre Progit pour des définitions et graphiques :
http://progit.org/ • https://github.com/progit/progit
Zach Holman pour les conseils sur la conception des slides :
http://zachholman.com/posts/slide-design-for-developers/
Yanone Kafeesatz pour cette magnifique police de caractères (CC BY 2.0) :
http://www.yanone.de/typedesign/kaffeesatz/
Vincent Driessen pour le graphique de git-flow :
http://nvie.com/archives/323
Les différents logos, marques et noms déposés que j’ai cité