The best practices for front-end git flow
- One install, unified development process for all git projects
- Relatively simple release initialization
- Easy to configure and publish multiple environment branches
- Support for publishing independent repositories
- main(source code) -> dev(feat, fix...) -> prod(test, pre-production...)
- main(source code) -> prod(production)
npm install -g balm-git-flow
⚠️ NOTE: For Windows users, usenpm install -g balm-git-flow@legacy
First, create a balm.env.js
file in your project root directory (use balm-git doctor
)
Variable Name | Type | Default | Description |
---|---|---|---|
BALM_GIT_FLOW_MAIN | string |
'main' |
main branch (source code) |
BALM_GIT_FLOW_RELEASE | string , array |
'release' |
production release branch(es) |
BALM_GIT_FLOW_RELEASES | array |
['release'] |
all release branches |
BALM_GIT_FLOW_SCRIPTS | array |
['build'] |
all build scripts corresponding to the release branches ( the keys of scripts in package.json ) |
BALM_GIT_FLOW_RELEASE_SCRIPTS | string |
JSON.stringify({}) |
associated scripts and release branches ({ [script: string]: [releases: string[]] } ) |
BALM_GIT_FLOW_BUILD_DIR | string |
'dist' |
build out dir (by npm-run-script ) |
BALM_GIT_FLOW_IGNORE_UNCOMMITTED | boolean |
false |
ignore uncommitted for workflow |
BALM_GIT_FLOW_USE_CUSTOM_MESSAGE | boolean |
false |
use custom log message |
BALM_GIT_FLOW_REPOSITORIES | array |
independent repositories | |
BALM_GIT_FLOW_SITE | string |
production release branch for independent repositories |
-
release scripts settings
-
Method 1:
BALM_GIT_FLOW_RELEASES = ['test', 'release']; BALM_GIT_FLOW_SCRIPTS = ['build:test', 'build:release'];
-
Method 2:
BALM_GIT_FLOW_RELEASE_SCRIPTS = JSON.stringify({ 'build:test': ['test-a', 'test-b'], 'build:release': ['release'] });
-
balm-git doctor
: check the project environmentbalm-git dev <new-branch> [<start-point>]
: create new branch for development from origin main branchbalm-git prod
: release process
⚠️ NOTE: For Windows users, usebalm-git-doctor
,balm-git-dev
andbalm-git-prod