Why Aren't You Using Git Flow?


Published on

I was inspired to use GIT much more reliably after reading about Git Flow. I got a little lost until I read "Why Aren't You Using Git Flow?". I decided to do a presentation for OrlandoPHP to try and share my enthusiasm with them.

Thank you to Vincent Driessen and Jeff Kreeftmeijer for being my inspiration.

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Talk about what you learned from the article. It made sense out of the image.
  • Create the branch in our example. We will add the feature to return a json result
  • Create the branch in our example. We will create a hotfix to normalize the input
  • Before finishing our feature branch, let’s rebase to bring the hotfix into the code
  • Why Aren't You Using Git Flow?

    1. 1. Git Flow Workflow<br />A powerful way to use GIT<br />
    2. 2. Who am I?<br />John Congdon<br />I have specialized in ecommerce since 2001<br />Sole developer/IT guy for bowlingball.com<br />Website (ecommerce)<br />Dropshipping Integration<br />Inventory management (picking/shipping)<br />Pro shops retail POS system<br />
    3. 3. What is GIT?<br />A distributed revision control repository<br />A complete copy exists with every clone<br />A smart way to code<br />Works Great for <br />Single developers<br />Small teams<br />Large teams <br />(open source teams are distributed worldwide)<br />
    4. 4. I Thought This Talk Was About Git Flow<br />What is Git Flow?<br />A development model created by Vincent Driessen<br />He is known online as nvie(nvie.com)<br />My personal version control story<br />Sole programmer = bad habits<br />Worked on live code<br />Didn’t have versions / fall back points<br />No idea what may have changed (good or bad)<br />
    5. 5.
    6. 6. I WAS STILL CONFUSED<br />I had the printout on my desk<br />I tried desperately to follow the flow<br />I always fell back into my old habits of editing live code (It’s just faster)<br />
    7. 7. My Turning Point<br />I wouldn’t be giving this talk without one, would I?<br />Why Aren’t You Using Git Flow?<br />By Jeff Kreeftmeijer<br />http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/<br />
    8. 8. Let’s Get Started<br />Install git& git-flow<br />Using BASH or ZSH?<br />Install git& git-flow autocompletion<br />Start a Project<br />gitinit creates a new git repo<br />git flow init initializes git flow<br />Accept the defaults. There are good reasons to do so.<br />Most open source projects use this format<br />Everyone that works on your code needs to have the same settings<br />Every cloned repo needs to run git flow init<br />
    9. 9. Git flow feature<br />A branch of development when working on new features<br />A feature branch is created off of the develop branch<br />You can have many feature branches at the same time<br />I primarily live in feature branches<br />We use Bugzilla at work as our IT request system<br />My feature branch names: BugXXX-DescriptiveName<br />When finished, branch is merged back into develop<br />Start usage: git flow feature start XYZ<br />Finish usage: git flow feature finish XYZ<br />
    10. 10. Git flow hotfix<br />A branch used to fix production code<br />Branch is created off of master<br />My hotfix branch names follow the same convention<br />When finished, branch is merged back into master and develop<br />I also use these for “mini” features or quick improvements<br />I do this in place of editing live code now  <br />Start usage: git flow hotfix start XYZ<br />Finish usage: git flow hotfix finish XYZ<br />
    11. 11. Git flow feature rebase<br />Used to bring a feature branch up to date with develop<br />I use this on long running feature branches (major/unreleased feature)<br />A good idea before finishing a feature branch. Easier to solve merge conflicts this way in my opinion.<br />Rewinds current feature, pulls in changes from develop, replays current feature.<br />
    12. 12. Git flow release<br />This is an in between branch<br />Created from develop<br />My release names are v0.9.XX, mostly arbitrary<br />Changes can be made (usually release notes, updating version info, or any other change before ready for production)<br />When finished, branch is merged into both master and develop<br />
    13. 13. PHP Community Resources<br />Twitter is my friend<br />Me @johncongdon<br />David Rogers @al_the_ax<br />Cal Evans @CalEvans<br />Lorna Jane @lornajane<br />Vincent Driessen @nvie<br />Travis Swicegood @tswicegood<br />
    14. 14. References<br />The source<br />http://nvie.com/posts/a-successful-git-branching-model/<br />Why Aren’t You Using Git Flow? By Jeff Kreeftmeijer<br />http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/<br />Git Flow<br />https://github.com/nvie/gitflow<br />