Node Git Flow
A command line node module to deal with git flow
Requirements
Links
Installation
$ npm install ngitflow --save-dev
or
$ npm install -g ngitflow
Usage
init
Initialize git-flow
repository structure. Create master
and develop
branches. You should set your develop branch
as a default branch in your git hosting service provider.
$ ngitflow init -h
Usage: init [options]
Options:
-h, --help output usage information
Examples:
$ ngitflow init
release
Create a new release branch and bump package.json
version. Example 1.0.1-snapshot.0
becomes 1.0.1
in release
branch. After release finish a new tag is created and merged back to develop and master. Version
becomes 1.0.2-snapshot
on develop but on master stays 1.0.1
.
$ ngitflow release -h
Usage: release [options] <action> [levelOrVersion]
Options:
-o, --offline do not sync with remote
-pi, --pre-id [preId] prerelease id value
-h, --help display help for command
Examples:
$ ngitflow release start
$ ngitflow release start minor
$ ngitflow release start major
$ ngitflow release start 1.15.0
$ ngitflow release start 1.15.0-alpha.0
$ ngitflow release start prerelease --pre-id rc
$ ngitflow release finsih
feature
Create a new feature branch and bump package.json
version. Example 1.0.1-snapshot.0
becomes 1.0.1-firstfeature.0
.
After feature finish all changes are merged back to develop and version is changed back to snapshot.
$ ngitflow feature -h
Usage: feature [options] <action> [name]
Options:
-h, --help output usage information
Examples:
$ ngitflow feature start
$ ngitflow feature start firstfeature
$ ngitflow feature finish
Utils
bump
Bump version and commit.
$ ngitflow bump -h
Usage: ngitflow bump [options] [levelOrVersion]
Options:
-pi, --pre-id [preId] prerelease id value (only for prerelease)
-h, --help display help for command
Examples:
$ ngitflow bump
$ ngitflow bump patch
$ ngitflow bump minor
$ ngitflow bump major
$ ngitflow bump 1.15.0
$ ngitflow bump 1.15.0-alpha.0
$ ngitflow bump prerelease --pre-id rc
versions
See current version or print all next versions.
$ ngitflow versions -h
Usage: ngitflow versions [options]
Options:
-a, --all output all versions
-h, --help display help for command
Examples:
$ ngitflow versions
$ ngitflow versions --all
config
See configurations from .ngitflowrc
file.
$ ngitflow config -h
Usage: ngitflow config [options]
Options:
-l, --list list config
-h, --help display help for command
Examples:
$ ngitflow config --list
Recommended
You should install it as a dev dependency and then add the following to the scripts
object in your package.json
:
"release:start": "ngitflow release start",
"release:finish": "ngitflow release finish",
"release": "ngitflow release start && ngitflow release finish"
Possible .ngitflowrc configuration
{
"versionFiles": [
{
"file": "projects/core/package.json",
"regex": "(\"version\"\\s*:\\s*\")[\\s\\S]*?\",",
"replacement": "$1$VERSION\","
}
],
"prereleaseId": "snapshot"
}
-
versionFiles
is a list of any files that contains version string and you want to be updated when version in mainpackage.json
is changed. You simply define path to file, regex of matching string that you want to replace and replacement string that contains$VERSION
key which is replaced with real version string before replacement in file is made. -
prereleaseId
is prerelease id value. By defaultsnapshot
is used, but you can change tobeta
,rc
or something similar.
Tree
License
This project is released under the MIT license, which can be found in LICENSE
.