Git Branching for Agile Teams
-
date post
21-Oct-2014 -
Category
Technology
-
view
6.012 -
download
1
description
Transcript of Git Branching for Agile Teams
![Page 1: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/1.jpg)
Git Branching for Agile Teams
Helping agile teams be awesomemoar^
@svenpet
![Page 2: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/2.jpg)
@svenpet
Sven Peters !
Atlassian Ambassador & Geek
Guten Morgen
![Page 3: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/3.jpg)
Housekeeping
Submit Qs for A!
Smile, we’re on camera.
Tweet to #code4acause
1
2
3
![Page 4: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/4.jpg)
Agenda
Git + agile = BFFs
Branching models for agile teams
Incorporating best practices
Trade-offs to consider
1
2
3
4
![Page 5: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/5.jpg)
Why Git + Agile?
![Page 6: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/6.jpg)
Build in narrow vertical slices
DATA B A S E
B AC K E N D
F R O N T E N D
T E ST I N G
Time
“big bang” launch
DATA B A S E
B AC K E N D
F R O N T E N D
T E ST I N G
MVP launch
1
![Page 7: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/7.jpg)
potentially shippable, even without this piece
Build in narrow vertical slicesI have a roof!
![Page 8: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/8.jpg)
Make releases a non-eventjust a few dependencies...
2
![Page 9: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/9.jpg)
Make releases a non-event
![Page 10: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/10.jpg)
Chaos!
look Ma, a goat!
I do my thing, too
I do my thing
![Page 11: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/11.jpg)
Hoarding
![Page 12: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/12.jpg)
Isn‘t it ironic?
![Page 13: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/13.jpg)
A Few Words About Git
![Page 14: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/14.jpg)
Branching & merging is hell
In Subversioneverybody stops work until merge is done
waiting until implementation is done
afraid that the build will fail
![Page 15: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/15.jpg)
Branching & merging is a breeze
In Git
![Page 16: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/16.jpg)
Branch-per-Issue Workflow
![Page 17: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/17.jpg)
Keep the main line clean
dev branch = isolation chamber
![Page 18: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/18.jpg)
Clarity & traceability
![Page 19: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/19.jpg)
Branch-per-Issue Workflowfor SaaS teams
![Page 20: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/20.jpg)
sgd-IRKD-30
sgd-IRKD-45
master
A branch for every issue
fortunately, no goats here
![Page 21: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/21.jpg)
sgd-IRKD-30
A branch for every issue
master
sgd-IRKD-30
God-like admin rights optional
![Page 22: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/22.jpg)
A branch for every issue
master
sgd-IRKD-30
![Page 23: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/23.jpg)
A branch for every issue
master
sgd-IRKD-30
![Page 24: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/24.jpg)
A branch for every issue
master
sgd-IRKD-30
gatekeeper
![Page 25: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/25.jpg)
A branch for every issuestill no goats!
![Page 26: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/26.jpg)
Using an Integration Branch
![Page 27: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/27.jpg)
sgd-IRKD-30
sgd-IRKD-45
master
Surprise!
![Page 28: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/28.jpg)
sgd-IRKD-30
sgd-IRKD-45
master
Using an integration branch
integration
![Page 29: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/29.jpg)
sgd-IRKD-30
sgd-IRKD-45
master
Using an integration branch
integration
![Page 30: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/30.jpg)
Branch-per-Issue Workflow
for installed app teams
![Page 31: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/31.jpg)
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1
![Page 32: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/32.jpg)
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1
sgd-IRKD-31
![Page 33: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/33.jpg)
sgd-IRKD-30
master
Multiple-version support
v 1.2
v 1.1bugfix-IRKD-32
![Page 34: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/34.jpg)
master
Multiple-version support
v 1.2
v 1.1
bugfix-IRKD-32
![Page 35: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/35.jpg)
master
Multiple-version support
v 1.2
v 1.1
manually
automatically
https://bitbucket.org/durdn/automatic-merge-hook
The Atlassian Way
![Page 36: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/36.jpg)
Continuous Integration &
Peer Review
![Page 37: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/37.jpg)
Running CI on dev branches
all active branches are under test
![Page 38: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/38.jpg)
1
2
3
Running CI on dev branches
Clone master’s CI configs
Jenkins plugin or Git hook
bitbucket.org/tpettersen/git-ci-hooks
![Page 39: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/39.jpg)
Running CI on dev branches
![Page 40: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/40.jpg)
Running CI on dev branches
sgd-IRKD-30
master
v 1.2
![Page 41: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/41.jpg)
Peer code review
1
2
3
Create request via UI or git request-pull
Review, revise, rinse & repeat
Approve & merge
![Page 42: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/42.jpg)
Peer code review
![Page 43: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/43.jpg)
Additional Considerations
![Page 44: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/44.jpg)
It’s not “pure CI”beware of goats
![Page 45: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/45.jpg)
Dark features
![Page 46: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/46.jpg)
Q & A
![Page 48: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/48.jpg)
#code4acause
![Page 49: Git Branching for Agile Teams](https://reader034.fdocuments.us/reader034/viewer/2022051108/54468a34b1af9fe33a8b4618/html5/thumbnails/49.jpg)
@svenpet
Sven Peters !
Atlassian Ambassador & Geek
THANKS