Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tsedio/gflow
🛠️ A better `git flow`
https://github.com/tsedio/gflow
command-line flow git hacktoberfest nodejs rebase tool
Last synced: 3 months ago
JSON representation
🛠️ A better `git flow`
- Host: GitHub
- URL: https://github.com/tsedio/gflow
- Owner: tsedio
- License: mit
- Created: 2017-11-08T18:37:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-19T11:32:39.000Z (over 1 year ago)
- Last Synced: 2024-10-13T03:12:44.793Z (4 months ago)
- Topics: command-line, flow, git, hacktoberfest, nodejs, rebase, tool
- Language: JavaScript
- Homepage:
- Size: 2.85 MB
- Stars: 9
- Watchers: 6
- Forks: 5
- Open Issues: 21
-
Metadata Files:
- Readme: readme.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# GFLOW
A command line inspired from the Git Flow process and adapted to use rebase command exlusively.
It always keep your branches up to date.![example](example.gif)
## Feature
- Define a production and development branches,
- See all branches status,
- Rebase and run tasks (Install and test) before pushing a branch,
- Always create a branch from production,## Install
```bash
npm install -g gflow
```## Usage
```bash
Usage: gflow [options] [command]Options:
-V, --version output the version number
-h, --help output usage informationCommands:
branches List all branches status
finish Merge the current branch on the referenced branch (production or ancestor) and delete it
merge Merge the current branch on the referenced branch (production or ancestor) without deleting branch
release Create the release tag on the production branch. Synchronize the dev branch and production branch (for CI like travis)
init Create a new git flow project
new Create a new branch from the latest commit of production branch
push Rebase the current branch from production and push all commit (run test before)
rebase Rebase the current branch from production
fetch Download objects and refs from another repository (--all and --prune)
sync Synchronize dev branch and production
config Operation about configuration
help [cmd] display help for [cmd]
```### Getting started
You can initialize a new GFlow project with this command:
```bash
gflow init
```This command will configure the production and development branches.
### Configuration options
Gflow init command generate a `.glfowrc` config file with some options look like:
```jsonc
{
"flow": "gflow", // gflow || gitflow
"production": "production",
"develop": "master",
"charBranchNameSeparator": "_",
"remote": "origin",
"ignores": [],
"syncAfterFinish": true,
"postFinish": "",
"skipTest": true,
"branchTypes": {
"feat": "feat",
"fix": "fix",
"chore": "chore",
"docs": "docs"
}
}
```Key | Description
---|---
`flow` | Change flow used by GFlow. `gflow` use rebase command and `gitflow` use merge command.
`production` | Name of the production branch or the branch use as reference to rebase a feature branch.
`develop` | Name of the development branch (or the release candidate branch).
`charBranchNameSeparator` | Char separator of the a branch between branchName and task type (feat, fix, chore, etc...). Example: if char = "/" `feat/branch_name`.
`remote` | Alias name of the remote repository (origin).
`ignores` | Disable rebasing for the given branch list when the `rebase-all` command is used.
`syncAfterFinish` | Perform synchronization between `production` and `develop` branches.
`postFinish` | Run command after the `finish` command.
`skipTest` | Disable unit test step.
`branchTypes` | Configure the branch types for the command `gflow new`.