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

