SlideShare a Scribd company logo
Why I Use Textmate...
           Glenn Roberts
             @glennrob
     glenn.roberts@siyelo.com
...To Squash Commits...
           Glenn Roberts
             @glennrob
     glenn.roberts@siyelo.com
...During an Interactive
        Rebase...
            Glenn Roberts
              @glennrob
      glenn.roberts@siyelo.com
...In My Uber Git
    Workflow...
        Glenn Roberts
          @glennrob
  glenn.roberts@siyelo.com
...Which Uses
Branching & Merging...
           Glenn Roberts
             @glennrob
     glenn.roberts@siyelo.com
... Like a Boss.
       Glenn Roberts
         @glennrob
 glenn.roberts@siyelo.com
Sorry Farrel, already used up all my
slide quota
• Why your git workflow is important
• How we do it @ Siyelo
• Random slides to fill the last 4
 minutes of a 5 minute talk.
Source control basics. Nailed it.
•   feature branches
•   commit early, often
•   interactive rebase, squash
•   ship that mother.
•   old branch labels
•   partial/no squashing (OK)
•   nasty git log
•   whats in a feature?
•   whats in a feature-set?
Evolve your team workflow.
The Nvie.com model:
1. The Major Branches




                         Text




           Author: Vincent Driessen
           Original blog post: http://nvie.com/archives/323
           License: Creative Commons
w/ 3 types of supporting branches...
2. Feature Branches




              Text
1a) Merge like a Boss with --no-ff




                          Text




            Author: Vincent Driessen
            Original blog post: http://nvie.com/archives/323
            License: Creative Commons
1b) Always merge with intent
 --no-ff on the ‘major’ branches

[branch "dev"]
  mergeoptions = --no-ff --no-commit
[branch "master"]
  mergeoptions = --no-ff --no-commit
• Stop pulling, please...
Every merge is sacred
   fetch and rebase instead
1c) Nice merge commit changelog

# ~/.gitconfig
[merge]
  summary = true



    Merge branch 'v0.9.5'

    * v0.9.5: (25 commits)
      refactor ambiguous budget? & spend? methods
      fix failing specs
2. Release Branches
                         dev           release branches                      master


                                                                                      Start of release
                                                                                        branch for
                                                                                            1.0


 From this point on,
“next release” means
                                                                                         Only bug xes!
 the release after 1.0




                                                                                              Tag
                                                                                              1.0

                                    Bug xes merged
                                     back into dev


                          Author: Vincent Driessen
                          Original blog post: http://nvie.com/archives/323
                          License: Creative Commons
3. Hotfix Branches




           Author: Vincent Driessen
           Original blog post: http://nvie.com/archives/323
           License: Creative Commons
• [dev] branch
 • keep stable
 • rebase feature branches
 • avoid pulling
• use merge commits (--no-ff )
• use release & hotfix branches
• [master] commit == a release.
Uber git workflow
... we dont need your witchcraft!
j/k. Git Flow is rad.
But understand the basics first.
Share and Enjoy!




  Author: Glenn Roberts
  Rubyfuza 2011
  License: Creative Commons
Ad

More Related Content

Similar to Uber git workflow (20)

Git flow workflow example
Git flow workflow exampleGit flow workflow example
Git flow workflow example
Samúel Jón Gunnarsson
 
Git version control
Git version controlGit version control
Git version control
David Xie
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
NYC DevShop
 
Git workflows
Git workflowsGit workflows
Git workflows
Thuc Le Dong
 
Gitflow Model
Gitflow ModelGitflow Model
Gitflow Model
kenziii
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with git
Joseluis Laso
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
Lingvokot
 
Subversion
SubversionSubversion
Subversion
Tomy Ismail
 
Gitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesGitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de Branches
Javier Alvarez
 
Svn Basic Tutorial
Svn Basic TutorialSvn Basic Tutorial
Svn Basic Tutorial
Marco Pivetta
 
BSADD-Git-TRAINING
BSADD-Git-TRAININGBSADD-Git-TRAINING
BSADD-Git-TRAINING
bsadd
 
Bsadd training-git
Bsadd training-gitBsadd training-git
Bsadd training-git
Maksud Chowdhury
 
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
Vivek Parihar
 
GIT Basics
GIT BasicsGIT Basics
GIT Basics
Tagged Social
 
Lightning branches at RedMart (Js conf Asia 2014 Talk)
Lightning branches at RedMart (Js conf Asia 2014  Talk)Lightning branches at RedMart (Js conf Asia 2014  Talk)
Lightning branches at RedMart (Js conf Asia 2014 Talk)
Ritesh Angural
 
SVN Information
SVN Information  SVN Information
SVN Information
RAHUL TRIPATHI
 
A short guide to git's interactive rebase
A short guide to git's interactive rebaseA short guide to git's interactive rebase
A short guide to git's interactive rebase
Ombu Labs, The Lean Software Boutique
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
Syed Imam
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
Maidul Islam
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
François D'Agostini
 
Git version control
Git version controlGit version control
Git version control
David Xie
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
NYC DevShop
 
Gitflow Model
Gitflow ModelGitflow Model
Gitflow Model
kenziii
 
Collaborative development with git
Collaborative development with gitCollaborative development with git
Collaborative development with git
Joseluis Laso
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
Lingvokot
 
Gitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesGitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de Branches
Javier Alvarez
 
BSADD-Git-TRAINING
BSADD-Git-TRAININGBSADD-Git-TRAINING
BSADD-Git-TRAINING
bsadd
 
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
Vivek Parihar
 
Lightning branches at RedMart (Js conf Asia 2014 Talk)
Lightning branches at RedMart (Js conf Asia 2014  Talk)Lightning branches at RedMart (Js conf Asia 2014  Talk)
Lightning branches at RedMart (Js conf Asia 2014 Talk)
Ritesh Angural
 
GitFlow Workshop
GitFlow WorkshopGitFlow Workshop
GitFlow Workshop
Syed Imam
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
Maidul Islam
 
Git basics a starter on git and its ecosystem
Git basics  a starter on git and its ecosystemGit basics  a starter on git and its ecosystem
Git basics a starter on git and its ecosystem
François D'Agostini
 

Uber git workflow

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: \n
  • #6: \n
  • #7: \n
  • #8: \n
  • #9: \n
  • #10: Some chaos in the repo.\n Need: An understandable model\n
  • #11: Rein Henrich’s agile git workflow\n
  • #12: when/what to release? to staging - to prod ?\nbugfixes?\n
  • #13: \n
  • #14: Vincent Driessen\n
  • #15: a merge with master is a prod release by definition\n
  • #16: \n
  • #17: \n
  • #18: rebase origin/dev! first\n\nsquash if you want\n\n
  • #19: rebase origin/dev! first\n\nsquash if you want\n\n
  • #20: \n
  • #21: \n
  • #22: with no-ff you get a\n
  • #23: \n
  • #24: \n
  • #25: tasty spaghetti\n
  • #26: \n
  • #27: \n
  • #28: \n
  • #29: \n