mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 15:36:21 -04:00
* git-feature: add configurable branch separator Closes #1069 This allows the use of a separator other than `/` for feature or other alias branches. While a command-line option has been provided (`-s` or `--separator`), this will most often be used via `git-extras.feature.separator`. * Significant update to bin/git-feature - Changed option parsing so that `--alias` requires an argument and will fail with an error unless provided. Applied the same logic to `--separator`. - Changed `finish` parsing to capture it as a variable flag during argument parsing. This could be extended so that if `finish` is already true, a second `finish` results in the word being added to the argument list. ```console $ git feature -- finish remote $ git feature finish finish remote ``` This has not been done because it is a bit of an inconsistent handling for documentation purposes. - Add handling of `--` to permit options or `finish` to be made part of the feature branch name. - Since `finish` is now a variable flag, simplify the name-building logic to always use `concatargs "${argv[@]}"`. This means that `git feature finish ...` and `git feature ...` behave the same in terms of feature branch name building. - Basically rewrote the man page to include better descriptions of the options as well as adding a GIT CONFIG section and additional EXAMPLES for the new features/behaviour.
204 lines
4.3 KiB
Groff
204 lines
4.3 KiB
Groff
.\" generated with Ronn/v0.7.3
|
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
.
|
|
.TH "GIT\-FEATURE" "1" "September 2023" "" "Git Extras"
|
|
.
|
|
.SH "NAME"
|
|
\fBgit\-feature\fR \- Create/Merge feature branch
|
|
.
|
|
.SH "SYNOPSIS"
|
|
\fBgit\-feature\fR [\-a|\-\-alias \fIPREFIX\fR] [\-s|\-\-separator \fISEPARATOR\fR] [\-r|\-\-remote [REMOTE_NAME]] [\-\-from START_POINT] \fINAME\fR\.\.\.
|
|
.
|
|
.P
|
|
\fBgit\-feature\fR [\-a|\-\-alias \fIPREFIX\fR] [\-s|\-\-separator \fISEPARATOR\fR] finish [\-\-squash] \fINAME\fR\.\.\.
|
|
.
|
|
.SH "DESCRIPTION"
|
|
Create or merge the given feature branch\. The feature branch name is made from the \fIPREFIX\fR, the \fISEPARATOR\fR, and the \fINAME\fR joined together\.
|
|
.
|
|
.P
|
|
The default \fIPREFIX\fR is \fBfeature\fR and \fISEPARATOR\fR is \fB/\fR, which can be changed (see OPTIONS and GIT CONFIG for details)\.
|
|
.
|
|
.P
|
|
The branch \fINAME\fR may be specified as multiple words which will be joined with \fB\-\fR\. If the branch name contains the word \fBfinish\fR or is another OPTION, \fB\-\-\fR should be passed to stop OPTION parsing\. See the EXAMPLES for details\.
|
|
.
|
|
.SH "OPTIONS"
|
|
.
|
|
.TP
|
|
\fB\-a\fR \fIPREFIX\fR, \fB\-\-alias\fR \fIPREFIX\fR:
|
|
.
|
|
.IP
|
|
The branch prefix to use, or \fBfeature\fR if not supplied\.
|
|
.
|
|
.TP
|
|
\fB\-s\fR \fISEPARATOR\fR, \fB\-\-separator\fR \fISEPARATOR\fR:
|
|
.
|
|
.IP
|
|
The separator to use for joining the branch prefix and the branch name, or \fB/\fR if not supplied\.
|
|
.
|
|
.TP
|
|
\fB\-r\fR [REMOTE_NAME], \fB\-\-remote\fR [REMOTE_NAME]:
|
|
.
|
|
.IP
|
|
Setup a remote tracking branch using \fBremote_name\fR\. If \fBremote_name\fR is not supplied, use \fBorigin\fR by default\.
|
|
.
|
|
.TP
|
|
\fB\-\-from\fR START_POINT:
|
|
.
|
|
.IP
|
|
Setup a start point when the branch created\. If \fB\-\-from\fR is not supplied, use the current branch by default\. This option will be ignored when \fBfinish\fRing a branch\.
|
|
.
|
|
.TP
|
|
\fBfinish\fR:
|
|
.
|
|
.IP
|
|
Merge and delete the feature branch\.
|
|
.
|
|
.TP
|
|
\fB\-\-squash\fR:
|
|
.
|
|
.IP
|
|
Run a squash merge when \fBfinish\fRing the feature branch\.
|
|
.
|
|
.TP
|
|
\fINAME\fR:
|
|
.
|
|
.IP
|
|
The name of the feature branch\.
|
|
.
|
|
.SH "GIT CONFIG"
|
|
You can configure the default branch prefix and separator via git config options\.
|
|
.
|
|
.TP
|
|
\fBgit\-extras\.feature\.prefix\fR:
|
|
.
|
|
.IP
|
|
$ git config \-\-global add git\-extras\.feature\.prefix "prefix"
|
|
.
|
|
.TP
|
|
\fBgit\-extras\.feature\.separator\fR:
|
|
.
|
|
.IP
|
|
$ git config \-\-global add git\-extras\.feature\.separator "\-"
|
|
.
|
|
.SH "EXAMPLES"
|
|
.
|
|
.TP
|
|
Start a new feature:
|
|
.
|
|
.IP
|
|
$ git feature dependencies
|
|
.
|
|
.br
|
|
\&\.\.\.
|
|
.
|
|
.br
|
|
$ (feature/dependencies) git commit \-m "Some changes"
|
|
.
|
|
.TP
|
|
Finish a feature with \-\-no\-ff merge:
|
|
.
|
|
.IP
|
|
$ (feature/dependencies) git checkout master
|
|
.
|
|
.br
|
|
$ git feature finish dependencies
|
|
.
|
|
.TP
|
|
Finish a feature with \-\-squash merge:
|
|
.
|
|
.IP
|
|
$ (feature/dependencies) git checkout master
|
|
.
|
|
.br
|
|
$ git feature finish \-\-squash dependencies
|
|
.
|
|
.TP
|
|
Publish a feature upstream:
|
|
.
|
|
.IP
|
|
$ git feature dependencies \-r upstream
|
|
.
|
|
.TP
|
|
Use custom branch prefix:
|
|
.
|
|
.IP
|
|
$ git alias features "feature \-a features"
|
|
.
|
|
.br
|
|
$ git features dependencies
|
|
.
|
|
.br
|
|
$ (features/dependencies) \.\.\.
|
|
.
|
|
.br
|
|
$ (features/dependencies) git checkout master
|
|
.
|
|
.br
|
|
$ git features finish dependencies
|
|
.
|
|
.TP
|
|
Use custom branch separator:
|
|
.
|
|
.IP
|
|
$ git feature \-s \- dependencies
|
|
.
|
|
.br
|
|
$ (feature\-dependencies) \.\.\.
|
|
.
|
|
.br
|
|
$ (feature\-dependencies) git checkout master
|
|
.
|
|
.br
|
|
$ git feature \-s \- finish dependencies
|
|
.
|
|
.TP
|
|
Use custom branch prefix and separator from git config with multiple words:
|
|
.
|
|
.IP
|
|
$ git config \-\-global \-\-add git\-extras\.feature\.prefix "features"
|
|
.
|
|
.br
|
|
$ git config \-\-global \-\-add git\-extras\.feature\.separator "\."
|
|
.
|
|
.br
|
|
$ git feature dependency tracking
|
|
.
|
|
.br
|
|
$ (features\.dependency\-tracking) \.\.\.
|
|
.
|
|
.br
|
|
$ (features\.dependency\-tracking) git checkout master
|
|
.
|
|
.br
|
|
$ git feature finish dependency tracking
|
|
.
|
|
.TP
|
|
Use a \fBgit\-feature\fR option flag as part of a branch name:
|
|
.
|
|
.IP
|
|
$ git feature \-\- finish remote
|
|
.
|
|
.br
|
|
\&\.\.\.
|
|
.
|
|
.br
|
|
$ (feature/finish\-remote) git commit \-m "Some changes"
|
|
.
|
|
.SH "AUTHOR"
|
|
Written by Jesús Espino <\fIjespinog@gmail\.com\fR>
|
|
.
|
|
.br
|
|
Modified by Mark Pitman <\fImark\.pitman@gmail\.com\fR>
|
|
.
|
|
.br
|
|
Modified by Carlos Prado <\fIcarlos\.prado@cpradog\.com\fR>
|
|
.
|
|
.br
|
|
Modified by Austin Ziegler <\fIhalostatue@gmail\.com\fR>
|
|
.
|
|
.SH "REPORTING BUGS"
|
|
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
|
|
.
|
|
.SH "SEE ALSO"
|
|
<\fIhttps://github\.com/tj/git\-extras\fR>, git\-create\-branch(1), git\-delete\-branch(1)
|