git-feature(1) -- Create/Merge feature branch ======================================================== ## SYNOPSIS `git-feature` [-a|--alias ] [-s|--separator ] [-r|--remote [REMOTE_NAME]] [--from START_POINT] ... `git-feature` [-a|--alias ] [-s|--separator ] finish [--squash] ... ## DESCRIPTION Create or merge the given feature branch. The feature branch name is made from the , the , and the joined together. The default is `feature` and is `/`, which can be changed (see OPTIONS and GIT CONFIG for details). The branch may be specified as multiple words which will be joined with `-`. If the branch name contains the word `finish` or is another OPTION, `--` should be passed to stop OPTION parsing. See the EXAMPLES for details. ## OPTIONS - `-a` , `--alias` : The branch prefix to use, or `feature` if not supplied. - `-s` , `--separator` : The separator to use for joining the branch prefix and the branch name, or `/` if not supplied. - `-r` [REMOTE_NAME], `--remote` [REMOTE_NAME]: Setup a remote tracking branch using `remote_name`. If `remote_name` is not supplied, use `origin` by default. - `--from` START_POINT: Setup a start point when the branch created. If `--from` is not supplied, use the current branch by default. This option will be ignored when `finish`ing a branch. - `finish`: Merge and delete the feature branch. - `--squash`: Run a squash merge when `finish`ing the feature branch. - : The name of the feature branch. ## GIT CONFIG You can configure the default branch prefix and separator via git config options. - `git-extras.feature.prefix`: $ git config --global add git-extras.feature.prefix "prefix" - `git-extras.feature.separator`: $ git config --global add git-extras.feature.separator "-" ## EXAMPLES - Start a new feature: $ git feature dependencies ... $ (feature/dependencies) git commit -m "Some changes" - Finish a feature with --no-ff merge: $ (feature/dependencies) git checkout master $ git feature finish dependencies - Finish a feature with --squash merge: $ (feature/dependencies) git checkout master $ git feature finish --squash dependencies - Publish a feature upstream: $ git feature dependencies -r upstream - Use custom branch prefix: $ git alias features "feature -a features" $ git features dependencies $ (features/dependencies) ... $ (features/dependencies) git checkout master $ git features finish dependencies - Use custom branch separator: $ git feature -s - dependencies $ (feature-dependencies) ... $ (feature-dependencies) git checkout master $ git feature -s - finish dependencies - Use custom branch prefix and separator from git config with multiple words: $ git config --global --add git-extras.feature.prefix "features" $ git config --global --add git-extras.feature.separator "." $ git feature dependency tracking $ (features.dependency-tracking) ... $ (features.dependency-tracking) git checkout master $ git feature finish dependency tracking - Use a `git-feature` option or the `finish` command as part of a branch name: $ git feature -- finish remote ... $ (feature/finish-remote) git commit -m "Some changes" $ (feature/finish-remote) git checkout main $ git feature finish -- finish remote ## AUTHOR Written by Jesús Espino <> Modified by Mark Pitman <> Modified by Carlos Prado <> Modified by Austin Ziegler <> ## REPORTING BUGS <> ## SEE ALSO <>, git-create-branch(1), git-delete-branch(1)