SlideShare a Scribd company logo
Git things done.
Anne Thomas
Work hard, stay positive, and git up
early. It's the best part of the day.
George Allen, Sr.
Quick overview of Git
➔ Version Control System
➔ Track changes in your code
➔ Allow multiple developers to easily work on
same project
➔ Created in 2005 by Linus Torvalds
Success is gitting what you want.
Happiness is wanting what you git.
Ingrid Bergman
What are the pros of Git
➔ Decentralized code (unlike subversion, which
uses a single shared repository)
➔ Super popular so there are plenty of resources,
applications, tutorials and community
➔ Allows you to use the feature branch workflow
Frankly, my dear, I don't git a damn.
Rhett Butler
What are the cons of Git
➔ Ummm…. none?
➔ Can be intimidating for new developers to grasp
the mental model (same with any version control)
➔ Extremely powerful
➔ If you are using a git hosting service (eg. Github),
it can be an extra cost
Alternatives to Git
➔ Mercurial
➔ Subversion (SVN)
➔ Perforce
My mama always said life was like a
box of chocolates. You never know
what you're gonna git.
Forrest Gump
How are you using Git? Questions to ask
yourself.
➔ How often are we deploying to production?
➔ Do we tag code with releases?
➔ Do you have a QA team?
➔ How large is my development team (individual/small/large)?
➔ Do we use command line or GUI?
➔ Is this a short-term project or long-term project that requires maintenance?
➔ Is this an open source project?
Git to the choppa!
Major Alan “Dutch” Schaeferd
Git hosting services
➔ Github
➔ Bitbucket
➔ GitLab
➔ Lots more! Good breakdown
Success is a science; if you have the
conditions, you git the result.
Oscar Wilde
Benefits of using a Git hosting service
➔ They bring all of the goodness of a decentralized
version control system to a centralized service
➔ Great for open source projects
➔ Pull requests, issue tracking
➔ Depending on the service - project
management!
The way to git started is to quit talking
and begin doing.
Walt Disney
Options for Git workflow
➔ None - master only baby!
➔ Developer branch
➔ Feature branch
➔ Git-flow
➔ Custom
None/Basic/Central
➔ Push and pull directly from the master branch
➔ Used by individuals
➔ Easiest to understand
➔ Prone to issues cropping up/ unstable master
Developer Branch
➔ Each developer has their own branch that they
work on
➔ Use pull requests to merge into master
➔ Not feature specific
Feature Branch
➔ New branch created based on feature that
needs to be added
➔ Use pull requests to merge into master
Git-flow
➔ Uses master, develop, feature-branches,
release-branches, hotfix
➔ Branches are specifically named
➔ Git extensions available through command-line
➔ Cheatsheet
Git-flow
➔ Uses master and develop to record history of project
➔ Feature branches are created off develop and merged into
develop
➔ Release branch is forked off develop - only used for fixes,
docs (no new features)
➔ Release gets merged into master and tagged (also merged
back into develop)
➔ Hotfix branches are for patch fixes and are forked/merged
directly into master
➔ Stellar article
Git-flow
Custom
➔ Most answers from survey had a specific workflow, but it
was custom to each developer
➔ Combination of the feature branch workflow and
development was very popular (no release branches)
➔ We use a master, development, feature-branch, bug-fixes-*
and hotfix method
➔ QA/design review is done directly on the feature-branch and
then development is QAed one final time before merging into
master
Instead of looking at the past, I put
myself ahead twenty years and try to
look at what I need to do now in order
to git there then.
Diana Ross
Branch management
➔ To rebase or not to rebase?
◆ Rebasing is controversial
◆ Good breakdown of pros and cons:
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
➔ Commit messages
◆ Small commits - use git add -p, which allows you to stage partials of files
◆ Effed up your commit message? No worries - use `git commit —amend` to
edit your commit messages
◆ Describe WHY code has been changed
If stupidity git us into this mess, then
why can't it git us out?
Will Rogers
Merge conflicts
➔ Make sure that you aren’t ignoring other branches that may
have been merged into development branch while you have
been working on your feature
➔ Do a git pull before any new work starts for the day
➔ Use a diff tool to compare
➔ Ask your fellow dev! Sometimes a quick message on Slack
or wandering over to someone’s desk will save a ton of time
You don't git older, you git better.
Shirley Bassey
Case Study: Things that are working for us
➔ Github
◆ Issues
◆ Labels
◆ Projects
◆ Releases
◆ Pull requests
I'll git you, my pretty, and your little
dog, too!
Wicked Witch
Issues
➔ Add as many details as possible
➔ Rename issues if needed
➔ Include screenshots/links/any and all relevant
information
➔ @users to ask questions
"The only way to git rid of a temptation
is to yield to it."
Oscar Wilde
Labels
➔ Design and QA specific labels
➔ Emoji in labels - create empathy
➔ Make sure your labels are consistent across
projects/repos
➔ Group similar labels by colour (eg. I, II, III)
Labels
Do not take life too seriously. You will
never git out of it alive.
Elbert Hubbard
Github Projects
➔ Boards
➔ To do lists
➔ Looping in QA/design
Projects: Boards
Projects: To do lists
Projects: Looping in QA/design
➔ Heavy use of labels/assigning people
➔ Smaller team, so we are able to do this
I don't want to git to the end of my life
and find that I lived just the length of it.
I want to have lived the width of it as
well.
Diane Ackerman
Releases
➔ Limit the permissions of who can actually push
to Master
➔ Use the checklist feature to give QA one last go
- all feature branches have been merged
together - does everything still work?
Releases
Remember that children, marriages,
and flower gardens reflect the kind of
care they git.
H. Jackson Brown, Jr.
Pull requests
➔ Be nice!
➔ Commit messages MUST reference issue
number (keywords: closes, fixes, close, fix)
➔ Reference development styleguides
➔ Branch should be QA-approved
➔ Use comments to point out specific problems
Life's tragedy is that we git old too
soon and wise too late.
Benjamin Franklin
Tools
➔ CLI (Command Line Interface)/ iTerm
➔ VSCode
➔ GitKraken
➔ Tower
➔ Git town - automate your branching model
If you spend too much time thinking
about a thing, you'll never git it done.
Bruce Lee
Final thoughts
➔ Regardless of how you manage your repos,
make sure you fully document these processes
for on-boarding
➔ Regularly check in with your team to see what is
working and what isn’t
➔ Tweak as needed :D
Thanks for
listening!
Want to fill out a quick survey on Git?
Anne Thomas
@AlfalfaAnne
Out of the Sandbox

More Related Content

What's hot

DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4
GitLab, Inc
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
Wycliff1
 
Git slides
Git slidesGit slides
Git slides
Nanyak S
 
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
DevOpsDays Austin 2014
 
DevOps - Today Better than Yesterday
DevOps - Today Better than YesterdayDevOps - Today Better than Yesterday
DevOps - Today Better than Yesterday
Eric Lau
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
DeepikaRana30
 
Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
Pursuit Consulting
 
Kanban in Action
Kanban in ActionKanban in Action
Kanban in Action
Marcus Hammarberg
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
 
Using Git to Organize Your Project
Using Git to Organize Your ProjectUsing Git to Organize Your Project
Using Git to Organize Your Project
Manish Suwal 'Enwil'
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
Frédéric Lepied
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
GoogleDevelopersStud
 
Git workflow in agile development
Git workflow in agile developmentGit workflow in agile development
Git workflow in agile development
Zack Siri
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
AIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHubAIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHub
Nhi Nguyen
 
Introducing the new "react-native upgrade"
Introducing the new "react-native upgrade"Introducing the new "react-native upgrade"
Introducing the new "react-native upgrade"
Nicolas Cuillery
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
Anne Gentle
 

What's hot (20)

DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
 
GitLab webcast - Release 8.4
GitLab webcast - Release 8.4GitLab webcast - Release 8.4
GitLab webcast - Release 8.4
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
Git slides
Git slidesGit slides
Git slides
 
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
The Five Stages of Chef Grief: My First 6 months with Chef, and Getting Aroun...
 
DevOps - Today Better than Yesterday
DevOps - Today Better than YesterdayDevOps - Today Better than Yesterday
DevOps - Today Better than Yesterday
 
Hacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginnersHacktoberfest 2020 - Open source for beginners
Hacktoberfest 2020 - Open source for beginners
 
Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
 
Kanban in Action
Kanban in ActionKanban in Action
Kanban in Action
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
 
Using Git to Organize Your Project
Using Git to Organize Your ProjectUsing Git to Organize Your Project
Using Git to Organize Your Project
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Git workflow in agile development
Git workflow in agile developmentGit workflow in agile development
Git workflow in agile development
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
 
AIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHubAIS Technical Development Workshop 3: Getting Started with Git and GitHub
AIS Technical Development Workshop 3: Getting Started with Git and GitHub
 
Introducing the new "react-native upgrade"
Introducing the new "react-native upgrade"Introducing the new "react-native upgrade"
Introducing the new "react-native upgrade"
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 

Similar to Git Things Done

Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
Git for Writers: Dumping the Bucket Metaphor
Git for Writers: Dumping the Bucket MetaphorGit for Writers: Dumping the Bucket Metaphor
Git for Writers: Dumping the Bucket Metaphor
Mysti Berry
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
All Things Open
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
Domendra Sahu
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
Pedro Melo
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHub
DSCVSSUT
 
Version control, you git
Version control, you gitVersion control, you git
Version control, you git
Mayur Patil
 
Make Your Team Flow
Make Your Team FlowMake Your Team Flow
Make Your Team Flow
Chad Moone
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
Robert Lee-Cann
 
Gitting better
Gitting betterGitting better
Gitting better
Ali Servet Donmez
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talk
Tiago Ameller
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
Sebin Benjamin
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
Github
GithubGithub
Github developing stack
Github developing stackGithub developing stack
Github developing stack
Vicente Bolea
 
[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code
Christopher Schmitt
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
Emma Jane Hogbin Westby
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
Tilton2
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
RaghavendraVattikuti1
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
James Ford
 

Similar to Git Things Done (20)

Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 
Git for Writers: Dumping the Bucket Metaphor
Git for Writers: Dumping the Bucket MetaphorGit for Writers: Dumping the Bucket Metaphor
Git for Writers: Dumping the Bucket Metaphor
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
Workshop on Git and GitHub
Workshop on Git and GitHubWorkshop on Git and GitHub
Workshop on Git and GitHub
 
Version control, you git
Version control, you gitVersion control, you git
Version control, you git
 
Make Your Team Flow
Make Your Team FlowMake Your Team Flow
Make Your Team Flow
 
Beginner's Guide to Version Control with Git
Beginner's Guide to Version Control with GitBeginner's Guide to Version Control with Git
Beginner's Guide to Version Control with Git
 
Gitting better
Gitting betterGitting better
Gitting better
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talk
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Github
GithubGithub
Github
 
Github developing stack
Github developing stackGithub developing stack
Github developing stack
 
[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code[artifactconf] Github for People Who Don't Code
[artifactconf] Github for People Who Don't Code
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Git and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slideGit and Github workshop ppt slide by slide
Git and Github workshop ppt slide by slide
 
Git 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawanGit 101: Force-sensitive to Jedi padawan
Git 101: Force-sensitive to Jedi padawan
 

More from FITC

Cut it up
Cut it upCut it up
Cut it up
FITC
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital Health
FITC
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
FITC
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
FITC
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
FITC
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the Answer
FITC
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s Story
FITC
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday Innovation
FITC
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight Websites
FITC
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is Terrifying
FITC
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future Human
FITC
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)
FITC
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR Game
FITC
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare System
FITC
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product Design
FITC
 
The Power of Now
The Power of NowThe Power of Now
The Power of Now
FITC
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAs
FITC
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstack
FITC
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self Discovery
FITC
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time For
FITC
 

More from FITC (20)

Cut it up
Cut it upCut it up
Cut it up
 
Designing for Digital Health
Designing for Digital HealthDesigning for Digital Health
Designing for Digital Health
 
Profiling JavaScript Performance
Profiling JavaScript PerformanceProfiling JavaScript Performance
Profiling JavaScript Performance
 
Surviving Your Tech Stack
Surviving Your Tech StackSurviving Your Tech Stack
Surviving Your Tech Stack
 
How to Pitch Your First AR Project
How to Pitch Your First AR ProjectHow to Pitch Your First AR Project
How to Pitch Your First AR Project
 
Start by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the AnswerStart by Understanding the Problem, Not by Delivering the Answer
Start by Understanding the Problem, Not by Delivering the Answer
 
Cocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s StoryCocaine to Carrots: The Art of Telling Someone Else’s Story
Cocaine to Carrots: The Art of Telling Someone Else’s Story
 
Everyday Innovation
Everyday InnovationEveryday Innovation
Everyday Innovation
 
HyperLight Websites
HyperLight WebsitesHyperLight Websites
HyperLight Websites
 
Everything is Terrifying
Everything is TerrifyingEverything is Terrifying
Everything is Terrifying
 
Post-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future HumanPost-Earth Visions: Designing for Space and the Future Human
Post-Earth Visions: Designing for Space and the Future Human
 
The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)The Rise of the Creative Social Influencer (and How to Become One)
The Rise of the Creative Social Influencer (and How to Become One)
 
East of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR GameEast of the Rockies: Developing an AR Game
East of the Rockies: Developing an AR Game
 
Creating a Proactive Healthcare System
Creating a Proactive Healthcare SystemCreating a Proactive Healthcare System
Creating a Proactive Healthcare System
 
World Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product DesignWorld Transformation: The Secret Agenda of Product Design
World Transformation: The Secret Agenda of Product Design
 
The Power of Now
The Power of NowThe Power of Now
The Power of Now
 
High Performance PWAs
High Performance PWAsHigh Performance PWAs
High Performance PWAs
 
Rise of the JAMstack
Rise of the JAMstackRise of the JAMstack
Rise of the JAMstack
 
From Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self DiscoveryFrom Closed to Open: A Journey of Self Discovery
From Closed to Open: A Journey of Self Discovery
 
Projects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time ForProjects Ain’t Nobody Got Time For
Projects Ain’t Nobody Got Time For
 

Recently uploaded

快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
cyber crime.pptx..........................
cyber crime.pptx..........................cyber crime.pptx..........................
cyber crime.pptx..........................
GNAMBIKARAO
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
Donato Onofri
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
APNIC
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
dtagbe
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
thezot
 
How to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdfHow to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdf
Infosec train
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
APNIC
 
KubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial IntelligentKubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial Intelligent
Emre Gündoğdu
 

Recently uploaded (12)

快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
cyber crime.pptx..........................
cyber crime.pptx..........................cyber crime.pptx..........................
cyber crime.pptx..........................
 
HijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process HollowingHijackLoader Evolution: Interactive Process Hollowing
HijackLoader Evolution: Interactive Process Hollowing
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
 
How to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdfHow to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdf
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
 
KubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial IntelligentKubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial Intelligent
 

Git Things Done

  • 2. Work hard, stay positive, and git up early. It's the best part of the day. George Allen, Sr.
  • 3. Quick overview of Git ➔ Version Control System ➔ Track changes in your code ➔ Allow multiple developers to easily work on same project ➔ Created in 2005 by Linus Torvalds
  • 4. Success is gitting what you want. Happiness is wanting what you git. Ingrid Bergman
  • 5. What are the pros of Git ➔ Decentralized code (unlike subversion, which uses a single shared repository) ➔ Super popular so there are plenty of resources, applications, tutorials and community ➔ Allows you to use the feature branch workflow
  • 6. Frankly, my dear, I don't git a damn. Rhett Butler
  • 7. What are the cons of Git ➔ Ummm…. none? ➔ Can be intimidating for new developers to grasp the mental model (same with any version control) ➔ Extremely powerful ➔ If you are using a git hosting service (eg. Github), it can be an extra cost
  • 8. Alternatives to Git ➔ Mercurial ➔ Subversion (SVN) ➔ Perforce
  • 9. My mama always said life was like a box of chocolates. You never know what you're gonna git. Forrest Gump
  • 10. How are you using Git? Questions to ask yourself. ➔ How often are we deploying to production? ➔ Do we tag code with releases? ➔ Do you have a QA team? ➔ How large is my development team (individual/small/large)? ➔ Do we use command line or GUI? ➔ Is this a short-term project or long-term project that requires maintenance? ➔ Is this an open source project?
  • 11. Git to the choppa! Major Alan “Dutch” Schaeferd
  • 12. Git hosting services ➔ Github ➔ Bitbucket ➔ GitLab ➔ Lots more! Good breakdown
  • 13. Success is a science; if you have the conditions, you git the result. Oscar Wilde
  • 14. Benefits of using a Git hosting service ➔ They bring all of the goodness of a decentralized version control system to a centralized service ➔ Great for open source projects ➔ Pull requests, issue tracking ➔ Depending on the service - project management!
  • 15. The way to git started is to quit talking and begin doing. Walt Disney
  • 16. Options for Git workflow ➔ None - master only baby! ➔ Developer branch ➔ Feature branch ➔ Git-flow ➔ Custom
  • 17. None/Basic/Central ➔ Push and pull directly from the master branch ➔ Used by individuals ➔ Easiest to understand ➔ Prone to issues cropping up/ unstable master
  • 18. Developer Branch ➔ Each developer has their own branch that they work on ➔ Use pull requests to merge into master ➔ Not feature specific
  • 19. Feature Branch ➔ New branch created based on feature that needs to be added ➔ Use pull requests to merge into master
  • 20. Git-flow ➔ Uses master, develop, feature-branches, release-branches, hotfix ➔ Branches are specifically named ➔ Git extensions available through command-line ➔ Cheatsheet
  • 21. Git-flow ➔ Uses master and develop to record history of project ➔ Feature branches are created off develop and merged into develop ➔ Release branch is forked off develop - only used for fixes, docs (no new features) ➔ Release gets merged into master and tagged (also merged back into develop) ➔ Hotfix branches are for patch fixes and are forked/merged directly into master ➔ Stellar article
  • 23. Custom ➔ Most answers from survey had a specific workflow, but it was custom to each developer ➔ Combination of the feature branch workflow and development was very popular (no release branches) ➔ We use a master, development, feature-branch, bug-fixes-* and hotfix method ➔ QA/design review is done directly on the feature-branch and then development is QAed one final time before merging into master
  • 24. Instead of looking at the past, I put myself ahead twenty years and try to look at what I need to do now in order to git there then. Diana Ross
  • 25. Branch management ➔ To rebase or not to rebase? ◆ Rebasing is controversial ◆ Good breakdown of pros and cons: https://git-scm.com/book/en/v2/Git-Branching-Rebasing ➔ Commit messages ◆ Small commits - use git add -p, which allows you to stage partials of files ◆ Effed up your commit message? No worries - use `git commit —amend` to edit your commit messages ◆ Describe WHY code has been changed
  • 26. If stupidity git us into this mess, then why can't it git us out? Will Rogers
  • 27. Merge conflicts ➔ Make sure that you aren’t ignoring other branches that may have been merged into development branch while you have been working on your feature ➔ Do a git pull before any new work starts for the day ➔ Use a diff tool to compare ➔ Ask your fellow dev! Sometimes a quick message on Slack or wandering over to someone’s desk will save a ton of time
  • 28. You don't git older, you git better. Shirley Bassey
  • 29. Case Study: Things that are working for us ➔ Github ◆ Issues ◆ Labels ◆ Projects ◆ Releases ◆ Pull requests
  • 30. I'll git you, my pretty, and your little dog, too! Wicked Witch
  • 31. Issues ➔ Add as many details as possible ➔ Rename issues if needed ➔ Include screenshots/links/any and all relevant information ➔ @users to ask questions
  • 32.
  • 33. "The only way to git rid of a temptation is to yield to it." Oscar Wilde
  • 34. Labels ➔ Design and QA specific labels ➔ Emoji in labels - create empathy ➔ Make sure your labels are consistent across projects/repos ➔ Group similar labels by colour (eg. I, II, III)
  • 36. Do not take life too seriously. You will never git out of it alive. Elbert Hubbard
  • 37. Github Projects ➔ Boards ➔ To do lists ➔ Looping in QA/design
  • 40. Projects: Looping in QA/design ➔ Heavy use of labels/assigning people ➔ Smaller team, so we are able to do this
  • 41. I don't want to git to the end of my life and find that I lived just the length of it. I want to have lived the width of it as well. Diane Ackerman
  • 42. Releases ➔ Limit the permissions of who can actually push to Master ➔ Use the checklist feature to give QA one last go - all feature branches have been merged together - does everything still work?
  • 44. Remember that children, marriages, and flower gardens reflect the kind of care they git. H. Jackson Brown, Jr.
  • 45. Pull requests ➔ Be nice! ➔ Commit messages MUST reference issue number (keywords: closes, fixes, close, fix) ➔ Reference development styleguides ➔ Branch should be QA-approved ➔ Use comments to point out specific problems
  • 46. Life's tragedy is that we git old too soon and wise too late. Benjamin Franklin
  • 47. Tools ➔ CLI (Command Line Interface)/ iTerm ➔ VSCode ➔ GitKraken ➔ Tower ➔ Git town - automate your branching model
  • 48. If you spend too much time thinking about a thing, you'll never git it done. Bruce Lee
  • 49. Final thoughts ➔ Regardless of how you manage your repos, make sure you fully document these processes for on-boarding ➔ Regularly check in with your team to see what is working and what isn’t ➔ Tweak as needed :D
  • 50. Thanks for listening! Want to fill out a quick survey on Git? Anne Thomas @AlfalfaAnne Out of the Sandbox