SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
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-flow/




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 finish a story by using a commit message, include "fixed", "completed" or "finished" 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 'finished' 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 finish a story by using a commit message, include "fixed", "completed" or "finished" 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 'finished' 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

Mais conteúdo relacionado

Mais procurados

Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareSebastiano 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 havanabodepd
 
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 #1ParisTechTalks
 

Mais procurados (6)

Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
 
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...
 
Openstack havana
Openstack havanaOpenstack havana
Openstack havana
 
Fixup and autosquash
Fixup and autosquashFixup and autosquash
Fixup and autosquash
 
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.
 
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
 

Destaque

PCA for the uninitiated
PCA for the uninitiatedPCA for the uninitiated
PCA for the uninitiatedBen Mabey
 
App marketing para empresas - Ténicas ASO
App marketing para empresas - Ténicas ASOApp marketing para empresas - Ténicas ASO
App marketing para empresas - Ténicas ASOSlashMobility.com
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflowsArthur Shvetsov
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)viniciusban
 
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話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-FlowMikhail 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 flowCaesar Chi
 
CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務Yu Lung Shao
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015Taller Negócio Digitais
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
 

Destaque (15)

PCA for the uninitiated
PCA for the uninitiatedPCA for the uninitiated
PCA for the uninitiated
 
App marketing para empresas - Ténicas ASO
App marketing para empresas - Ténicas ASOApp marketing para empresas - Ténicas ASO
App marketing para empresas - Ténicas ASO
 
Manduka git first_steps
Manduka git first_stepsManduka git first_steps
Manduka git first_steps
 
Charla git
Charla gitCharla git
Charla git
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
Gitlab flow solo (minimo)
Gitlab flow solo (minimo)Gitlab flow solo (minimo)
Gitlab flow solo (minimo)
 
創科 從零開始認識 Docker
創科 從零開始認識 Docker創科 從零開始認識 Docker
創科 從零開始認識 Docker
 
GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話GitHubにおける開発フローについてのお話
GitHubにおける開発フローについてのお話
 
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
 
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
 
CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務CI/CD/DevOps 使用 travis ci 服務
CI/CD/DevOps 使用 travis ci 服務
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 

Semelhante a Github flow

Git tutorial for CS320 Students
Git tutorial for CS320 StudentsGit tutorial for CS320 Students
Git tutorial for CS320 Studentsmuratkrty
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet
 
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your LifeMark 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 Githubjptoto
 
Git workshop
Git workshopGit workshop
Git workshopRay 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 2017Lemi 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 LFSTim 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 2017Lemi Orhan Ergin
 
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os projectLasse Schuirmann
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for ArtistsDavid Newbury
 

Semelhante a Github flow (20)

Tool Time
Tool TimeTool Time
Tool Time
 
Loading...git
Loading...gitLoading...git
Loading...git
 
Thinking in Git
Thinking in GitThinking in Git
Thinking in Git
 
Git tutorial for CS320 Students
Git tutorial for CS320 StudentsGit tutorial for CS320 Students
Git tutorial for CS320 Students
 
git session --interactive
git session --interactivegit session --interactive
git session --interactive
 
How to ros
How to rosHow to ros
How to ros
 
Puppet at GitHub / ChatOps
Puppet at GitHub / ChatOpsPuppet at GitHub / ChatOps
Puppet at GitHub / ChatOps
 
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
 
GiTFO
GiTFOGiTFO
GiTFO
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Adding Source Control to Your Life
Adding Source Control to Your LifeAdding Source Control to Your Life
Adding Source Control to Your Life
 
Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
 
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
 
Git workshop
Git workshopGit workshop
Git workshop
 
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
 
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
 
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
 
Git 201
Git 201Git 201
Git 201
 
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
 

Mais de Ben Mabey

Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and SimpleBen 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 SpeakBen Mabey
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with CucumberBen Mabey
 
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With CucumberBen Mabey
 
Disconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecordDisconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecordBen Mabey
 
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix DatasetBen 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 RSpecBen Mabey
 

Mais de Ben Mabey (7)

Clojure, Plain and Simple
Clojure, Plain and SimpleClojure, Plain and Simple
Clojure, Plain and Simple
 
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
 
Writing Software not Code with Cucumber
Writing Software not Code with CucumberWriting Software not Code with Cucumber
Writing Software not Code with Cucumber
 
Outside-In Development With Cucumber
Outside-In Development With CucumberOutside-In Development With Cucumber
Outside-In Development With Cucumber
 
Disconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecordDisconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecord
 
SVD and the Netflix Dataset
SVD and the Netflix DatasetSVD and the Netflix Dataset
SVD and the Netflix Dataset
 
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
 

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-flow/ 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 finish a story by using a commit message, include "fixed", "completed" or "finished" 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 'finished' 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 finish a story by using a commit message, include "fixed", "completed" or "finished" 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 'finished' 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