{"id":21031280,"url":"https://github.com/workable/oneflow","last_synced_at":"2025-05-15T11:33:23.410Z","repository":{"id":33118045,"uuid":"106668004","full_name":"Workable/oneflow","owner":"Workable","description":"CLI tool to support Adam Ruka's branching model oneflow","archived":false,"fork":false,"pushed_at":"2023-10-21T11:48:32.000Z","size":290,"stargazers_count":24,"open_issues_count":10,"forks_count":5,"subscribers_count":49,"default_branch":"master","last_synced_at":"2024-11-17T01:45:57.523Z","etag":null,"topics":["cli","git","shell"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Workable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-12T08:48:32.000Z","updated_at":"2024-09-27T12:09:33.000Z","dependencies_parsed_at":"2023-01-14T23:28:45.139Z","dependency_job_id":null,"html_url":"https://github.com/Workable/oneflow","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Foneflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Foneflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Foneflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Workable%2Foneflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Workable","download_url":"https://codeload.github.com/Workable/oneflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225349140,"owners_count":17460315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","shell"],"created_at":"2024-11-19T12:26:56.527Z","updated_at":"2024-11-19T12:26:57.104Z","avatar_url":"https://github.com/Workable.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# one-flow\n\nCLI tool to support Adam Ruka's branching model [oneflow](http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow)\n\n## Installing one-flow\n\n1.  Run `npm install -g @workablehr/oneflow`\n\n## Initialization\n\n---\n\nBefore using `one-flow` a configuration wizard should be run in order to setup some basic settings. The result of this wizard is saved in `~/.oneflowrc` file. For project specific settings add and commit a `.oneflowrc` file in the root folder of your project.\n\nThe table below summarizes the supported settings:\n\n| Setting                               | Usage                                                                                                              | Default |\n| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------- |\n| `BASE_BRANCH`                         | base branch to close features, hotfixes, releases                                                                  | master  |\n| `MERGE_FF`                            | merge branches during feature-close using --ff-only?                                                               | true    |\n| `FEATURE_CLOSE_REWRITE_COMMITS`       | Rewrite commits during feature-close to have as a prefix the feature-name                                          | true    |\n| `RUN_CMD_AFTER_TAG_CREATION`          | Run a command after creating a tag                                                                                 |         |\n| `CHANGE_VERSIONS_WHEN_TAGGING`        | Change versions when creating a tag (hotfix-close, release-close) currently supporting nodejs, java, ruby          | true    |\n| `HOTFIX_CLOSE_REBASE_TO_LATEST_TAG`   | Rebase branch to latest tag during hotfix-close?                                                                   | true    |\n| `PUSH_CHANGES_TO_REMOTE`              | Push changes to remote when possible?                                                                              | true    |\n| `MERGE_INTERACTIVE`                   | Merge interactively during feature-close, hotfix-close?                                                            | false   |\n| `FEATURE_CLOSE_SQUASH`                | Squash commits during feature close to one commit?                                                                 | false   |\n| `RELEASE_CREATE_AND_CLOSE`            | Release create will also close it immediately updating versions and creating tags?                                 | false   |\n| `RELEASE_CLOSE_MERGES_TO_BASE_BRANCH` | Release close will merge changes to base branch. Choose no if you want to merge manually (eg. to run tests first). | true    |\n| `DEBUG`                               | Show debug information.                                                                                            | false   |\n\n\u003e To add autocomplete support use:\n\u003e `oneflow completion \u003e\u003e ~/.bashrc`\n\n## Branching models and Workflow\n\n---\n\n### Feature branches\n\n---\n\n- To create a [feature branch](http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow#feature-branches), use:\n\n```\noneflow feature-create [options] [feature-name]\n```\n\nThis command will create locally a feature branch from latest master.\n\nAvailable options:\n\n```\n  -P, --no-push-flag  Will not push local changes to remote\n  -h, --help          output usage information\n```\n\n- To close a feature branch, use:\n\n```\noneflow feature-close [options] [feature-name]\n```\n\nThis command will close the specified feature branch to master\n\nAvailable options:\n\n```\n  -P, --no-push-flag  Will not push local changes to remote\n  -i, --interactive   Interactive rebase\n  -r, --rewrite       Will rewrite commit messages with feature as prefix.\n  -f, --ff            Will run merge with ff-only\n  -s, --squash        Will squash commits into 1\n  -h, --help          output usage information\n```\n\n### Hotfix branches\n\n---\n\n- To create a [hotfix branch](http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow#hotfix-branches), use:\n\n```\noneflow hotfix-create [options] [hotfix-name] [base-tag]\n```\n\nThis command will create locally a hotfix branch from the provided tag. `one-flow` will find and propose the latest tag if no other is provided.\n\nAvailable options:\n\n```\n  -P, --no-push-flag  Will not push local changes to remote\n  -h, --help          output usage information\n```\n\n- To close a hotfix branch use:\n\n```\noneflow hotfix-close [options] [hotfix-name] [tag]\n```\n\nThis command will close a hotfix branch to master creating a tag\n\nAvailable options:\n\n```\n  -i, --interactive     Interactive rebase\n  -R, --no-rebase-flag  Will not rebase to latest hotfix\n  -P, --no-push-flag    Will not push local changes to remote\n  -h, --help            output usage information\n```\n\n### Release branches\n\n---\n\n- To create a [release branch](http://endoflineblog.com/oneflow-a-git-branching-model-and-workflow#release-branches), use:\n\n```\noneflow release-create [options] [commit] [tag]\n```\n\nThis command will create a release branch from a specific commit or from master if no commit is provided\n\nAvailable options:\n\n```\n  -P, --no-push-flag   Will not push local changes to remote\n  -c, --close          Opens and closes the release creating a tag\n  -M, --no-merge-flag  Will not merge after creating tag if called with -c\n  -h, --help           output usage information\n```\n\n- To close a release branch use:\n\n```\noneflow release-close [options] [tag]\n```\n\nThis command will tag and merge a release branch to master\n\nAvailable options:\n\n```\n  -P, --no-push-flag   Will not push local changes to remote\n  -M, --no-merge-flag  Will not merge after creating tag\n  -h, --help           output usage information\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkable%2Foneflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkable%2Foneflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkable%2Foneflow/lists"}