Commit 8b400eaf authored by French, Robert's avatar French, Robert
Browse files

Merge branch 'git-flow-the-standard-git-workflow' into 'master'

Add GitFlow Example and Slides

See merge request !6
parents be1ddb46 2211bac0
......@@ -6,3 +6,46 @@ collaboration workflow that works best for their needs. However, getting started
from scratch can sometimes be daunting. This week we'll look at "Git-Flow", one
of the most common workflow models. We'll discuss how it works, and how you can
adapt it for your team's needs.
## Don't Mess with The Best*
*\*or at least, the most popular*
Git-Flow has a lot in common with development workflows from centralized version
control systems, but enhances those ideas with some git-specific goodness. It
came into vogue several years ago, and the canonical reference is this blog
post by Jeff Kreeftmeijer:
* http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/
### Major components of Git-Flow
* Feature branches start from `develop`, and get merged back into `develop`
* Release Candidates are refined in their own branches
* Bugfixes in candidates also get merged into `develop`
* Releases are **tagged commits to master** (Everybody know [how to make a tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging#Annotated-Tags)?)
* Emergency Bugfixes (aka "hotfixes") go into `master` and `develop`
### Let's try some of this in practice:
1. `git clone git@code.ornl.gov:git-it-together/inspirational-quote-generator.git`
1. `git checkout -b develop`
1. `git checkout -b add-insipirational-limericks`
1. Add some excellent limericks
1. `git checkout develop; git merge add-inspirational-limericks`
1. `git checkout -b release-1.0`
1. Fix typos in limericks
1. `git checkout develop; git merge release-1.0`
1. `git checkout master; git merge release-1.0`
1. `git tag -a 1.0 -m "Add Inspirational Limericks"`
### Critiques of Git-Flow:
#### Too Complicated!
There are simpler workflows like what [GitHub uses internally](https://guides.github.com/introduction/flow/),
but they rely more on Continuous Integration, and may make for a more difficult
transition for teams that are accustomed to centralized version control tools.
#### Needs Special tooling!
If you have to write extra tools on top of git, and effectively ask foks to fill
out a form every time they make a commit, you might be getting in the way of
development more than you are helping to organize it.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment