Be a Happier Developer with Git / Productive Team #gettinggitright
-
Upload
sean-osawa -
Category
Software
-
view
54 -
download
0
description
Transcript of Be a Happier Developer with Git / Productive Team #gettinggitright
![Page 1: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/1.jpg)
WiFi: username / password
![Page 2: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/2.jpg)
A couple of Atlassians who get Git and dig the DAG
Tim PettersenDeveloper Advocate
@kannonboy
Abhin ChhabraBitbucket Developer
@abhin_chhabra
![Page 3: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/3.jpg)
The State of Git 15 min
Happier Developers 40 min
A bit about Stash 10 mins
Productive Teams 40 min
Break 10 min
![Page 4: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/4.jpg)
• Fill out survey, win awesome stuff (check the email you registered with)
!
• Tweet stuff with #gettinggitright !
• WiFi: username / password !
• Bathroom?
![Page 5: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/5.jpg)
Who knows
?
![Page 6: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/6.jpg)
Facts
500 Developers
![Page 7: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/7.jpg)
Facts
1000+ Nerds
![Page 8: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/8.jpg)
Facts
working on 9 products
![Page 9: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/9.jpg)
SoftwareWe
or in just 3 words
![Page 10: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/10.jpg)
SoftwareWe Teams
![Page 11: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/11.jpg)
![Page 12: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/12.jpg)
really small team
they know what’s going on!
Let’s do it!
Great idea!
Productivity++
![Page 13: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/13.jpg)
team is growing
Let’s do it! Great! Why?
Who will do it?Is it done? Have you
talked to QA?
I have no time for this!
Productivity?
![Page 14: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/14.jpg)
Productivity??
we’re not alone
Is it profitable?!
When is it done?!
![Page 15: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/15.jpg)
is a
Devel ping S ftware
S cial Challenge
![Page 16: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/16.jpg)
Tools
happy developers & productive teams Ship software
faster & smarter
![Page 17: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/17.jpg)
Ship software faster & smarter
happy developers & productive teams
![Page 18: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/18.jpg)
Git is on the rise
15%
38%
from 2011 to 2013Source: RedMonk Git Survey 2013
![Page 19: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/19.jpg)
Git will continue to grow!
63%
37%
December 2015
Git
CVS + SVN
Source: Atlassian Git Survey 2013
![Page 20: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/20.jpg)
Git works for the enterprise!
60%100+ developers
1,000+ employees
Source: Atlassian Git Survey 2013
![Page 21: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/21.jpg)
Git works for the enterprise!
27%
69%
use the cloud
develop on-premise
Source: CollabNet Git Survey 2013
![Page 22: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/22.jpg)
Git means fast releases
Git
SVN CVS
mainly daily - weekly
mainly monthly
Source: Atlassian Git Survey 2013
![Page 23: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/23.jpg)
Better code with Git
Code Reviews when using GIT
+15% more
thank you Pull Requests!
Source: Atlassian Git Survey 2013
![Page 24: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/24.jpg)
atlassian.com/git
Migrating soon?
![Page 25: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/25.jpg)
is just a tool!
![Page 26: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/26.jpg)
WiFi: bcenter
![Page 27: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/27.jpg)
Happier Developerwith
Be a
Erik van Zijst!Bitbucket Developer
Tim Pettersen!Developer Advocate
September 2014!with! and!
![Page 28: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/28.jpg)
Happier Developerwith
Be a
Abhin Chhabra !Bitbucket Developer
Tim Pettersen!Developer Advocate
September 2014!with! and!
![Page 29: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/29.jpg)
![Page 30: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/30.jpg)
Time machine without paradoxes?
![Page 31: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/31.jpg)
Explore & Understand
1
3
Speed, Speed, Speed
Control and Assemble4
Why does make you happy?
2 Freedom & Safety
![Page 32: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/32.jpg)
1
Fast is the new Black
Speed, speed, Speed
![Page 33: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/33.jpg)
Everything is local
Except push & pull
![Page 34: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/34.jpg)
Written in C by Linux kernel and filesystem
developers
![Page 35: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/35.jpg)
Read: fast :D
![Page 36: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/36.jpg)
But what if my repo is big?
446k lines of code added
1
3
Recent Linux kernel release (3.13) has 15+ million LOC
1,339 contributors4
2 12,000 non-merge commits
source lwn.net
![Page 37: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/37.jpg)
2 Freedom & Safety
![Page 38: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/38.jpg)
Feature Branching
![Page 39: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/39.jpg)
Feature Branching
![Page 40: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/40.jpg)
Feature branches: local
git checkout -b new-branch creates a branch and switches to it
![Page 41: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/41.jpg)
Feature branches: published (remote)
git push origin new-branch pushes a local branch remotely
![Page 42: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/42.jpg)
git stash is awesomeIt’s a way to
temporarily save your work on a stack
![Page 43: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/43.jpg)
So if your boss comes screaming at your desk
![Page 44: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/44.jpg)
Safety
![Page 45: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/45.jpg)
Losing work is very hard
very very
![Page 46: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/46.jpg)
maybe your git server crashed and the hd is
corrupted?… no problem
![Page 47: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/47.jpg)
Redundancy, every developer has a clone
![Page 48: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/48.jpg)
Chain of unlosability
![Page 49: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/49.jpg)
Recover a file
git checkout file-name
![Page 50: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/50.jpg)
Recover a commit
git checkout sha-1
git checkout ref (branch/tag)
or
![Page 51: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/51.jpg)
Print file as in branch
git show branch:path/to/file
can be any ref
![Page 52: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/52.jpg)
find a deleted method
git log -S<string> search through all history
![Page 53: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/53.jpg)
When all is lost, use the reflog
![Page 55: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/55.jpg)
Explore & Understand 3
![Page 56: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/56.jpg)
= history superpowers
Hard Questions to git logAsk
-S string in all diffs--after,--before when?--author who did what
![Page 57: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/57.jpg)
Who deleted that?git log -1 -- [path] lists where a file was deleted
git log --diff-filter=D --summary lists all deleted files
![Page 58: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/58.jpg)
Where is that constant?
git grep <regexp> compare the speed between this and regular grep or ack…you’ll be blown
away
![Page 59: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/59.jpg)
have I merged this?
git branch --no-merged lists branches not merged
git branch --merged lists branches already merged
![Page 60: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/60.jpg)
Control and Assemble4
![Page 61: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/61.jpg)
What is a merge?
Merge commit
master
feature
merges keep the context of the
feature’s commits
![Page 62: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/62.jpg)
git knows the ancestry
1
2
The merge is local
powerful merge strategies3
merge is better in git
![Page 63: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/63.jpg)
merge becomes a non-event
In most cases
![Page 64: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/64.jpg)
rebase: Rewrite history with safety belts on
![Page 65: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/65.jpg)
feature
master
What is a rebase?
It’s a way to replay commits, one by one,
on top of a branch
![Page 66: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/66.jpg)
master
feature
What is a rebase?
preserving the order of commits
![Page 67: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/67.jpg)
What is an --interactive rebase?
It’s a way to replay commits, one by one,
deciding interactively what to do with each
reword fixup
pick squash
edit exec
![Page 68: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/68.jpg)
CUSTOMARY WARNING!
rebase rewrites history!
Treat this power with great care. Only rewrite history of local branches or…
![Page 69: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/69.jpg)
Explore & Understand
1
3
Speed, Speed, Speed
Control and Assemble4
Why does make you happy?
2 Freedom & Safety
![Page 70: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/70.jpg)
![Page 71: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/71.jpg)
Happy Developerwith
A
![Page 72: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/72.jpg)
WiFi: bcenter
![Page 73: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/73.jpg)
![Page 74: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/74.jpg)
Productive Team withA
![Page 75: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/75.jpg)
Improving Code Quality
1
2
Efficient Workflows
Better Collaboration3
Why makes a team great!
4 Natural Fit
![Page 76: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/76.jpg)
Efficient Workflows
![Page 77: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/77.jpg)
upcoming Release ?Can we still fix a bug for the
FeatureIs the code for that
complete?
for the current version?HotfixHow do we
do
ReviewedHas everyone
the code for this feature ?
![Page 78: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/78.jpg)
Git workflow?What’s the best
We don’t know!
![Page 79: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/79.jpg)
+ different teams+ different products
different cultures
= different workflows
Git workflow?What’s the best
![Page 80: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/80.jpg)
DesignWorkflows
your own
![Page 81: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/81.jpg)
Issues Code
![Page 82: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/82.jpg)
Issues Code
JIRA-456
JIRA-123JIRA-123
JIRA-456
![Page 83: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/83.jpg)
Can’t be released right now
Unfinished features in your trunk / master branch
![Page 84: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/84.jpg)
Branch per issueFirst:
feature/JIRA-30
stable master branch
isolated feature work
master
![Page 85: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/85.jpg)
feature/JIRA-30-user-
Branch per issueFirst:
branch type
issue key
description
![Page 86: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/86.jpg)
bugfix/JIRA-31-
Branch per issueFirst:
branch type
issue key
description
![Page 87: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/87.jpg)
hotfix/JIRA-32-broke-
Branch per issueFirst:
branch type
issue key
description
![Page 88: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/88.jpg)
Typos happne!Tool switching sucks
![Page 89: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/89.jpg)
![Page 90: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/90.jpg)
![Page 91: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/91.jpg)
Is the branch green?
Branch name pre-populated
![Page 92: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/92.jpg)
Confounding build breakages
master
![Page 93: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/93.jpg)
Confounding build breakages
bugfix/
master
![Page 94: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/94.jpg)
Atlassian Marketplace1Workflow
SAAS Workflow
![Page 95: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/95.jpg)
Simplest Workflow
release from here
feature/JIRA-30
feature/JIRA-45
master
![Page 96: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/96.jpg)
Simple Workflowrelease from here
feature/JIRA-30
feature/JIRA-45
develop
masterintegrate here
![Page 97: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/97.jpg)
Atlassian Stash2Workflow
Installable software
![Page 98: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/98.jpg)
Multiple Product Versions
feature/JIRA-30
master
v 1.2
v 1.1
![Page 99: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/99.jpg)
Multiple Product Versions
master
v 1.2
v 1.1
bugfix/JIRA-41
![Page 100: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/100.jpg)
Multiple Product Versions
master
v 1.2
v 1.1
bugfix/JIRA-41
![Page 101: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/101.jpg)
Multiple Product Versions
master
v 1.2
v 1.1
bugfix/JIRA-45
![Page 102: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/102.jpg)
Multiple Product Versions
master
v 1.2
v 1.1
bugfix/JIRA-45
![Page 103: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/103.jpg)
Multiple Product Versions
master
v 1.2
v 1.1
bugfix/JIRA-45
boring work
![Page 104: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/104.jpg)
Automatic merges
https://bitbucket.org/durdn/automatic-merge-hook
with a Git hook
![Page 105: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/105.jpg)
Automatic mergeswith Stash
![Page 106: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/106.jpg)
Design your workflow
Nearly everything is possible with
![Page 107: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/107.jpg)
Improving Code Quality
![Page 108: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/108.jpg)
CodeReview
Photo: Yogi (Flickr)
![Page 109: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/109.jpg)
Better Code
Shared Knowledge
Team Ownership
![Page 110: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/110.jpg)
G = 1
R+1
Developer guilt
![Page 111: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/111.jpg)
Team Ownership
![Page 112: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/112.jpg)
Code Reviews
![Page 113: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/113.jpg)
Pull Requests
![Page 114: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/114.jpg)
Pull Requests
![Page 115: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/115.jpg)
do it before merge
Pull Requests
![Page 116: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/116.jpg)
Pull Request Creation
![Page 117: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/117.jpg)
Pull Request Creation
![Page 118: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/118.jpg)
Pull Request Creation
![Page 119: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/119.jpg)
Discuss
Discuss your changes
![Page 120: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/120.jpg)
Discuss your changes
![Page 121: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/121.jpg)
Side by side diff the choice is yours
![Page 122: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/122.jpg)
invited reviewers
![Page 123: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/123.jpg)
invited reviewers
minimum X approvals
Go merge!
![Page 124: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/124.jpg)
Pull Request Merge Checks
![Page 125: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/125.jpg)
Who would be
the best to reviewmy code?
![Page 126: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/126.jpg)
Auto Suggest Reviewers
Free Add On For
![Page 127: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/127.jpg)
Auto Suggest Reviewers
suggestions
why?
![Page 128: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/128.jpg)
committed code to this Pull Request
Suggestions:
contributed files that were modified
![Page 129: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/129.jpg)
Better Collaboration
![Page 130: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/130.jpg)
Working with contractors?
![Page 131: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/131.jpg)
Circle of Trust
Photo: Aljaz Zajc
![Page 132: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/132.jpg)
Strangers on the internet
Contractors
Interns
Other product teams
SupportCore dev team
Circle of Trust
![Page 133: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/133.jpg)
Collaboration with SVN
Core dev team
Everyone else
emailing patches repository tarballs hell-ish conflicts
![Page 134: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/134.jpg)
Collaboration with forks
Everyone else
Core dev team Changes
automatically synchronize downstream
.. but must be reviewed
before moving upstream
![Page 135: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/135.jpg)
feature
Collaboration with branches
Senior developers
Junior developers
maste
![Page 136: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/136.jpg)
Permissions for Branches with
![Page 137: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/137.jpg)
Permissions for Branches with
![Page 138: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/138.jpg)
Strangers on the internet
Interns
Other product teams
SupportCore dev team
Contractors
![Page 139: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/139.jpg)
Know your priorities
Security DevSpeed
![Page 140: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/140.jpg)
Natural Fit
to your existing flow
![Page 141: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/141.jpg)
There is so much going on in our projects!
Pull Requests
Sprints
Builds
Issues
Branches
![Page 142: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/142.jpg)
& CI
![Page 143: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/143.jpg)
manually triggered
automatically triggered
Building branches
maste
always build master
![Page 144: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/144.jpg)
Less time configuringmore time to code
![Page 145: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/145.jpg)
Every line of code starts with
Real Life Problema
![Page 146: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/146.jpg)
Every line of code starts with
Issuean
![Page 147: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/147.jpg)
Visualize your development
IN PROGRESS
Status People Code
Issue
good old days
![Page 148: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/148.jpg)
Visualize your development
Issue
Sprint Branch Pull Request
Build
2014 style
![Page 149: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/149.jpg)
Visualize your development
![Page 150: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/150.jpg)
Automatic Issue Transitions
feature/JIRA-30
master
IN REVIEW DONEIN PROGRESSOPEN
![Page 151: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/151.jpg)
![Page 152: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/152.jpg)
See what’s going onBuildswithBots
PagesIssues Branches Pull Requests etc.
![Page 153: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/153.jpg)
More time to codeBetter collaborationDev productivityThe future
Economics
Why Git?
Deliver software faster
Less bugs
Happy customers
![Page 154: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/154.jpg)
Why Git?
Ship software faster & smarter
![Page 155: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/155.jpg)
So now you can answer “Why Git?”
![Page 156: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/156.jpg)
Let’s talk a little bit about “Why ?”
![Page 157: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/157.jpg)
Why ?
157
1. BEST enterprise Git workflow 2. Integrations & extensibility 3. Scalability
![Page 158: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/158.jpg)
158
feature/STASH-123
master
The Best Git Workflow
X reviewers approved? Y builds passed? All tasks complete?
![Page 159: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/159.jpg)
159
feature/STASH-123
master
The Best Git Workflow
• Pull request merge checks • Repository hooks • Branch permissions • Flexibility & extensibility
![Page 160: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/160.jpg)
160
Powerful integrations
![Page 161: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/161.jpg)
161
Plugin APIs • Full Java API • Repository Hooks • Merge Checks • User Interface • REST end-points • Filetype renderers • SSH commands
Stash Platform
Branch Permissions REST APIs Git SCM
Source? You betcha!
![Page 162: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/162.jpg)
162
RESTful APIs insert /rest/api/latest
![Page 163: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/163.jpg)
163
RESTful APIs insert /rest/api/latest
![Page 164: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/164.jpg)
164
Scalability
Request prioritization
![Page 165: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/165.jpg)
165
Scalability
Request queuing
![Page 166: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/166.jpg)
166
Scalability
Response Caching
![Page 167: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/167.jpg)
167
Scalability
Clustering
![Page 168: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/168.jpg)
All sorts of teams are on&
![Page 169: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/169.jpg)
![Page 170: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/170.jpg)
Why ?
170
• BEST enterprise Git workflow • Integrations & extensibility • Scalability
![Page 171: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/171.jpg)
Please fill out our survey
to get a t-shirt
win wireless headphones
tweet #gettinggitright
Fill out our survey to
Get a “Stash” photo and
(check your email)
![Page 172: Be a Happier Developer with Git / Productive Team #gettinggitright](https://reader035.fdocuments.in/reader035/viewer/2022062614/5476d3a5b4af9f2f628b46ff/html5/thumbnails/172.jpg)
Q & A$10 for up to 10 devs
Free for 5 users Totally free
Free basic version