Create release candidate branches with ease! :)
Original Motivation: http://nvie.com/posts/a-successful-git-branching-model/
Under the hood git release uses the git config system to store lists of branches, and creates release files that store the branch list for you.
Install:
- Checkout Repo
cp /path/to/repo/git-release /local/path/dir/(Copy the git-release executable to a PATH dir, so you can use it globally)- OSX - copy to
~/binwhich automatically adds to PATH, open a new terminal window.
Quick Start:
Most Common Process: Initialize release, add features, then create a the release by merging all branches in.
cd /to/repogit release init v0.0.0 0git release feature [partial branch name]git release roll
List of Commands:
git release init [version] [candidate]to configure release versionsgit release add [full remote branch path]to add feature branches into the list to releasegit release feature [branch search string]to search for and add feature branches into the list to releasegit release deploystatusto output the status of the release and the branches and the respective commit hash for eachgit release remove [full remote branch path]to remove feature branches from the listgit release statusto see what version you are on and the branches addedgit release rollto roll out a new release candidate branch, which:- Creates a new branch based on release versioning, incrementing the RC
- Commits the Branch list to the new branch
- Merges in each of the added feature branches
git release appendsimilar to roll, but doesn't create a new release branch, simple remerges all branches into the current RCgit release nextsimilar to roll, but uses current release branch as the base branch, instead of mastergit release deploycheckout master, and merge in release branch and tag commit with release tag.git release dumpdeletes release branch and rollsback the candidate version.git release checkoutdisplays a list of release branches, allows for switching from release to releasegit release devbranchesto list out branches that are contained in the development branch, that are not yet on mastergit release checkoutfeatureto find and create local branch from remote feature branch