gitflow
=======
A collection of Git wrapper scripts to provide high-level repository operations
for Vincent Driessen's [branching model](http://nvie.com/archives/323 "original
blog post").

Please help out
---------------
This project is yet unimplemented. And yes, I mean unimplemented. There are no
scripts yet, but I will use this README file as the "design document" for now,
so people may start collaborating on it.

Feel free to fork this repo and to commit your additions.

Commands
--------
Initially, the following subcommands to `gitflow` should be created:

* `start`
* `finish`

Those subcommands could work on branch types:

* `feature`
* `release`
* `hotfix`

Examples
--------

* To start a new feature branch, use:
  
  		gitflow start feature <name> [<base>]
  		gitflow start feature foo-support
  
  `base` is `develop` by default.

* To finish this feature and have it merged into `develop`, use:
  
  	gitflow finish feature <name>
  	gitflow finish feature foo-support
  
* To start a new release branch for 2.0, based on the 1.1 production release, use:
  
  	gitflow start release <release>
  	gitflow start release 2.0
  
* To finish the release branch (i.e. to make an actual production release), use:
  
  	gitflow finish release <release>
  	gitflow finish release 2.0
  
* To start a new hotfix branch for 2.1, based on the 2.0 production release, use:
  
  	gitflow start hotfix <release> [<base-release>]
  	gitflow start hotfix 2.1 2.0
  
* To finish the hotfix branch, use:
  
  	gitflow finish hotfix <release>
  	gitflow finish hotfix 2.1

