ݺߣ

ݺߣShare a Scribd company logo
Flow
                              Ben Mabey
                              @bmabey
Tuesday, September 14, 2010
$ brew install git




Tuesday, September 14, 2010
$ gem install github




Tuesday, September 14, 2010
Lots of nice shortcuts... Like browse, pull, etc.. Also, look at the hub CLI tool.
$ gem install gitty


                                              http://github.com/timcharper/gitty




Tuesday, September 14, 2010
Gitty allows you to share local hooks in your git repo. One really useful one we always use is one that always updates the submodules after you
checkout a new ref. We also use it to prevent evil whitespace from entering a project. :)
ash
                                                                                    th B ion!
                                                                                 Wi et
                                                                                 Co mpl


          $ brew install git-flow


                              http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-?ow/




Tuesday, September 14, 2010
$ git flow feature start super-duper




Tuesday, September 14, 2010
$ git flow feature start super-duper
   Summary of actions:
   - A new branch 'feature/super-duper' was created, based on 'sprint'
   - You are now on branch 'feature/super-duper'

   Now, start committing on your feature. When done, use:

               git flow feature finish super-duper
   $




Tuesday, September 14, 2010
Based on development branch

   $ git flow feature start super-duper
   Summary of actions:
   - A new branch 'feature/super-duper' was created, based on 'sprint'
   - You are now on branch 'feature/super-duper'

   Now, start committing on your feature. When done, use:

               git flow feature finish super-duper
   $




Tuesday, September 14, 2010
Pivotal Tracker Hook


                        $ git commit -m [#12345678] WIP ...




Tuesday, September 14, 2010
To automatically ?nish a story by using a commit message, include "?xed", "completed" or "?nished" in the square brackets in addition to the story ID. You may also use different cases or forms of these verbs,
such as "Fix" or "FIXES", and they may appear before or after the story ID. Note: For features, this will put the story in the '?nished' state. For chores, it will put the story in the 'accepted' state
$ git flow feature
                 checkout   diff       finish   list
                 publish   pull        rebase   start
                                 track




Tuesday, September 14, 2010
See, I told you it had bash completion.
$ git flow publish super-duper




Tuesday, September 14, 2010
$ brew install tig




Tuesday, September 14, 2010
$ brew install tig




Tuesday, September 14, 2010
$ tig
   2010-09-10 16:26 Ben Mabey          + [feature/404-super-duper]
   removes blah method in favor of foo
   2010-09-10 16:25 Ben Mabey          * adds blah blah
   2010-09-10 16:18 Ben Mabey          * [origin/feature/super-duper]
   removes dead TODO file- not using anymore
   2010-09-10 16:17 Ben Mabey          * WIP
   2010-09-10 12:06 Ben Mabey          * [origin/sprint] [sprint] commit
   where branch started from




Tuesday, September 14, 2010
http://github.com/brotherbard/gitx/downloads




Tuesday, September 14, 2010
$ git flow feature rebase
                Will try to rebase 'super-duper'...
                Current branch feature/super-duper is up
                to date.


     Not interactive! Need to squash WIP commits.




Tuesday, September 14, 2010
$ git rebase origin/sprint --interactive
                                (-i)




Tuesday, September 14, 2010
pick       5e78cef   WIP
             pick       3165c4d   removes dead TODO file- not using anymore
             pick       24e7bff   adds blah blah
             pick       162133d   removes blah method in favor of foo




             Want to get rid of WIPs and false starts...




Tuesday, September 14, 2010
pick 5e78cef WIP
             s 24e7bff adds blah blah
             s 162133d removes blah method in favor of foo
             pick 3165c4d removes dead TODO file- not using anymore




Tuesday, September 14, 2010
$ git rebase b4472f60 -i




    Protip: rebasing locally before can prevent pain




Tuesday, September 14, 2010
Pivotal Tracker Hook


                $ git commit -m [Fixes #12345678] ...




Tuesday, September 14, 2010
To automatically ?nish a story by using a commit message, include "?xed", "completed" or "?nished" in the square brackets in addition to the story ID. You may also use different
cases or forms of these verbs, such as "Fix" or "FIXES", and they may appear before or after the story ID. Note: For features, this will put the story in the '?nished' state. For
chores, it will put the story in the 'accepted' state
$ git flow publish super-duper




Tuesday, September 14, 2010
Send Pull Request




Tuesday, September 14, 2010
http://help.github.com/pull-requests/




Tuesday, September 14, 2010
$ git flow feature finish super-duper
    Switched to branch 'sprint'
    Updating 44673aa..0978c4e
    Fast-forward
     0 files changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 foo
    Deleted branch feature/super-duper (was 0978c4e).

    Summary of actions:
    - The feature branch 'feature/super-duper' was merged into 'sprint'
    - Feature branch 'feature/super-duper' has been removed
    - You are now on branch 'sprint'

    $




Tuesday, September 14, 2010
$ git push


      GitHub will close the pull request when pushed!




Tuesday, September 14, 2010
Thanks!
                              BenMabey.com
              github.com/bmabey
                              Twitter: bmabey

Tuesday, September 14, 2010

More Related Content

What's hot (6)

Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
Sebastiano Merlino (eTr)
?
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Atlassian
?
Openstack havana
Openstack havanaOpenstack havana
Openstack havana
bodepd
?
Fixup and autosquash
Fixup and autosquashFixup and autosquash
Fixup and autosquash
Shawn Sorichetti
?
Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.
Peter Higgins
?
Pierre Couzy's presentation at Paris Tech Talks meetup #1
Pierre Couzy's presentation at Paris Tech Talks meetup #1Pierre Couzy's presentation at Paris Tech Talks meetup #1
Pierre Couzy's presentation at Paris Tech Talks meetup #1
ParisTechTalks
?
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Aligning Continuous Integration Deployment: Automated Validation of OpenStack...
Atlassian
?
Openstack havana
Openstack havanaOpenstack havana
Openstack havana
bodepd
?
Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.
Peter Higgins
?
Pierre Couzy's presentation at Paris Tech Talks meetup #1
Pierre Couzy's presentation at Paris Tech Talks meetup #1Pierre Couzy's presentation at Paris Tech Talks meetup #1
Pierre Couzy's presentation at Paris Tech Talks meetup #1
ParisTechTalks
?

Viewers also liked (14)

PCA for the uninitiated
PCA for the uninitiatedPCA for the uninitiated
PCA for the uninitiated
Ben Mabey
?
App marketing para empresas - Tnicas ASOApp marketing para empresas - Tnicas ASO
App marketing para empresas - Tnicas ASO
SlashMobility.com
?
Manduka git first_stepsManduka git first_steps
Manduka git first_steps
SlashMobility.com
?
Charla gitCharla git
Charla git
David Pordomingo de la Fuente
?
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
Arthur Shvetsov
?
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)
viniciusban
?
_ʼJR Docker
 _ʼJR Docker _ʼJR Docker
_ʼJR Docker
YӍ Trunk Studio
?
Ҿٱܲˤ뿪kե`ˤĤƤΤ
Ҿٱܲˤ뿪kե`ˤĤƤΤҾٱܲˤ뿪kե`ˤĤƤΤ
Ҿٱܲˤ뿪kե`ˤĤƤΤ
Sota Sugiura
?
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
Mikhail Melnik
?
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flow
Caesar Chi
?
CI/CD/DevOps ʹ travis ci
CI/CD/DevOps ʹ travis ci CI/CD/DevOps ʹ travis ci
CI/CD/DevOps ʹ travis ci
Yu Lung Shao
?
Gitlab flowGitlab flow
Gitlab flow
viniciusban
?
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
Taller Negcio Digitais
?
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
viniciusban
?
PCA for the uninitiated
PCA for the uninitiatedPCA for the uninitiated
PCA for the uninitiated
Ben Mabey
?
App marketing para empresas - Tnicas ASOApp marketing para empresas - Tnicas ASO
App marketing para empresas - Tnicas ASO
SlashMobility.com
?
Manduka git first_stepsManduka git first_steps
Manduka git first_steps
SlashMobility.com
?
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)
viniciusban
?
Ҿٱܲˤ뿪kե`ˤĤƤΤ
Ҿٱܲˤ뿪kե`ˤĤƤΤҾٱܲˤ뿪kե`ˤĤƤΤ
Ҿٱܲˤ뿪kե`ˤĤƤΤ
Sota Sugiura
?
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
Mikhail Melnik
?
Web development, from git flow to github flow
Web development, from git flow to github flowWeb development, from git flow to github flow
Web development, from git flow to github flow
Caesar Chi
?
CI/CD/DevOps ʹ travis ci
CI/CD/DevOps ʹ travis ci CI/CD/DevOps ʹ travis ci
CI/CD/DevOps ʹ travis ci
Yu Lung Shao
?
Gitlab flowGitlab flow
Gitlab flow
viniciusban
?
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
Taller Negcio Digitais
?

Similar to Github flow (20)

Tool Time
Tool TimeTool Time
Tool Time
Ken Collins
?
Loading...git
Loading...gitLoading...git
Loading...git
Rafael Garca
?
Thinking in Git
Thinking in GitThinking in Git
Thinking in Git
Great Wide Open
?
Git tutorial for CS320 Students
Git tutorial for CS320 StudentsGit tutorial for CS320 Students
Git tutorial for CS320 Students
muratkrty
?
git session --interactive
git session --interactivegit session --interactive
git session --interactive
Marius Colacioiu
?
How to ros
How to rosHow to ros
How to ros
Jihoon Lee
?
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
Puppet
?
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
Otto Kek?l?inen
?
GiTFO
GiTFOGiTFO
GiTFO
Rob Fuller
?
Working with Git
Working with GitWorking with Git
Working with Git
Pete Nicholls
?
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your Life
Mark Kelnar
?
Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
Alberto Leal
?
Nyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And GithubNyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And Github
jptoto
?
Git workshop
Git workshopGit workshop
Git workshop
Ray Toal
?
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Lemi Orhan Ergin
?
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
Tim Pettersen
?
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017
Lemi Orhan Ergin
?
Git 201
Git 201Git 201
Git 201
Dimitris Tsironis
?
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
Lasse Schuirmann
?
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
David Newbury
?
Git tutorial for CS320 Students
Git tutorial for CS320 StudentsGit tutorial for CS320 Students
Git tutorial for CS320 Students
muratkrty
?
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
Puppet
?
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your Life
Mark Kelnar
?
Nyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And GithubNyc Code Camp 2010 Git And Github
Nyc Code Camp 2010 Git And Github
jptoto
?
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Lemi Orhan Ergin
?
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
Tim Pettersen
?
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017
Lemi Orhan Ergin
?
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
Lasse Schuirmann
?
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
David Newbury
?

More from Ben Mabey (7)

Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and Simple
Ben Mabey
?
Cucumber: Automating the Requirements Language You Already Speak
Cucumber: Automating the Requirements Language You Already SpeakCucumber: Automating the Requirements Language You Already Speak
Cucumber: Automating the Requirements Language You Already Speak
Ben Mabey
?
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
Ben Mabey
?
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With Cucumber
Ben Mabey
?
Disconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecordDisconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecord
Ben Mabey
?
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix Dataset
Ben Mabey
?
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
Ben Mabey
?
Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and Simple
Ben Mabey
?
Cucumber: Automating the Requirements Language You Already Speak
Cucumber: Automating the Requirements Language You Already SpeakCucumber: Automating the Requirements Language You Already Speak
Cucumber: Automating the Requirements Language You Already Speak
Ben Mabey
?
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
Ben Mabey
?
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With Cucumber
Ben Mabey
?
Disconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecordDisconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecord
Ben Mabey
?
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix Dataset
Ben Mabey
?
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
Ben Mabey
?

Github flow

  • 1. Flow Ben Mabey @bmabey Tuesday, September 14, 2010
  • 2. $ brew install git Tuesday, September 14, 2010
  • 3. $ gem install github Tuesday, September 14, 2010 Lots of nice shortcuts... Like browse, pull, etc.. Also, look at the hub CLI tool.
  • 4. $ gem install gitty http://github.com/timcharper/gitty Tuesday, September 14, 2010 Gitty allows you to share local hooks in your git repo. One really useful one we always use is one that always updates the submodules after you checkout a new ref. We also use it to prevent evil whitespace from entering a project. :)
  • 5. ash th B ion! Wi et Co mpl $ brew install git-flow http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-?ow/ Tuesday, September 14, 2010
  • 6. $ git flow feature start super-duper Tuesday, September 14, 2010
  • 7. $ git flow feature start super-duper Summary of actions: - A new branch 'feature/super-duper' was created, based on 'sprint' - You are now on branch 'feature/super-duper' Now, start committing on your feature. When done, use: git flow feature finish super-duper $ Tuesday, September 14, 2010
  • 8. Based on development branch $ git flow feature start super-duper Summary of actions: - A new branch 'feature/super-duper' was created, based on 'sprint' - You are now on branch 'feature/super-duper' Now, start committing on your feature. When done, use: git flow feature finish super-duper $ Tuesday, September 14, 2010
  • 9. Pivotal Tracker Hook $ git commit -m [#12345678] WIP ... Tuesday, September 14, 2010 To automatically ?nish a story by using a commit message, include "?xed", "completed" or "?nished" in the square brackets in addition to the story ID. You may also use different cases or forms of these verbs, such as "Fix" or "FIXES", and they may appear before or after the story ID. Note: For features, this will put the story in the '?nished' state. For chores, it will put the story in the 'accepted' state
  • 10. $ git flow feature checkout diff finish list publish pull rebase start track Tuesday, September 14, 2010 See, I told you it had bash completion.
  • 11. $ git flow publish super-duper Tuesday, September 14, 2010
  • 12. $ brew install tig Tuesday, September 14, 2010
  • 13. $ brew install tig Tuesday, September 14, 2010
  • 14. $ tig 2010-09-10 16:26 Ben Mabey + [feature/404-super-duper] removes blah method in favor of foo 2010-09-10 16:25 Ben Mabey * adds blah blah 2010-09-10 16:18 Ben Mabey * [origin/feature/super-duper] removes dead TODO file- not using anymore 2010-09-10 16:17 Ben Mabey * WIP 2010-09-10 12:06 Ben Mabey * [origin/sprint] [sprint] commit where branch started from Tuesday, September 14, 2010
  • 16. $ git flow feature rebase Will try to rebase 'super-duper'... Current branch feature/super-duper is up to date. Not interactive! Need to squash WIP commits. Tuesday, September 14, 2010
  • 17. $ git rebase origin/sprint --interactive (-i) Tuesday, September 14, 2010
  • 18. pick 5e78cef WIP pick 3165c4d removes dead TODO file- not using anymore pick 24e7bff adds blah blah pick 162133d removes blah method in favor of foo Want to get rid of WIPs and false starts... Tuesday, September 14, 2010
  • 19. pick 5e78cef WIP s 24e7bff adds blah blah s 162133d removes blah method in favor of foo pick 3165c4d removes dead TODO file- not using anymore Tuesday, September 14, 2010
  • 20. $ git rebase b4472f60 -i Protip: rebasing locally before can prevent pain Tuesday, September 14, 2010
  • 21. Pivotal Tracker Hook $ git commit -m [Fixes #12345678] ... Tuesday, September 14, 2010 To automatically ?nish a story by using a commit message, include "?xed", "completed" or "?nished" in the square brackets in addition to the story ID. You may also use different cases or forms of these verbs, such as "Fix" or "FIXES", and they may appear before or after the story ID. Note: For features, this will put the story in the '?nished' state. For chores, it will put the story in the 'accepted' state
  • 22. $ git flow publish super-duper Tuesday, September 14, 2010
  • 23. Send Pull Request Tuesday, September 14, 2010
  • 25. $ git flow feature finish super-duper Switched to branch 'sprint' Updating 44673aa..0978c4e Fast-forward 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 foo Deleted branch feature/super-duper (was 0978c4e). Summary of actions: - The feature branch 'feature/super-duper' was merged into 'sprint' - Feature branch 'feature/super-duper' has been removed - You are now on branch 'sprint' $ Tuesday, September 14, 2010
  • 26. $ git push GitHub will close the pull request when pushed! Tuesday, September 14, 2010
  • 27. Thanks! BenMabey.com github.com/bmabey Twitter: bmabey Tuesday, September 14, 2010