Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitflow
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tools
gitflow
Commits
0b378bc7
Commit
0b378bc7
authored
Jan 28, 2010
by
Vincent Driessen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/flip-args' into develop
parents
3911e161
c81e7a2d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
212 additions
and
126 deletions
+212
-126
README.mdown
README.mdown
+22
-34
bump-version
bump-version
+6
-1
git-flow
git-flow
+22
-69
git-flow-feature
git-flow-feature
+17
-17
git-flow-hotfix
git-flow-hotfix
+14
-2
git-flow-init
git-flow-init
+78
-0
git-flow-release
git-flow-release
+14
-2
git-flow-support
git-flow-support
+13
-1
git-flow-version
git-flow-version
+26
-0
No files found.
README.mdown
View file @
0b378bc7
...
...
@@ -5,17 +5,9 @@ for Vincent Driessen's [branching model](http://nvie.com/archives/323 "original
blog post").
Release 0.1
-----------
A quick release of version 0.1 has arrived. The main scripts are functional and
should be usable under "normal" use.
There have barely been any real-world tests, but I encourage you to start using
it actively. [Feedback](http://github.com/nvie/gitflow/issues) is also very
welcome. See the "Please help out" section below, also.
**Make sure to validate the modifications to your repo after running any of the
`git-flow` commands, before pushing them permanently.**
> **IMPORTANT NOTE:**
> In release 0.2, the order of the arguments has changed to provide a logical
> subcommand hierarchy.
Installing git-flow
...
...
@@ -60,35 +52,31 @@ Example uses:
git flow init
* To start a new feature branch, use:
git flow start feature <name> [<base>]
git flow start feature foo-support
`base` is `develop` by default.
* List all feature branches:
* To finish this feature and have it merged into `develop`, use:
git flow feature
git flow finish feature <name>
git flow finish feature foo-support
* To list/start/finish feature branches, use:
* To start a new release branch for 2.0, based on the 1.1 production release, use:
git flow feature
git flow feature start <name> [<base>]
git flow feature finish <name>
git flow start release <release>
git flow start release 2.0
(`base` is `develop` by default)
* To
finish the release branch (i.e. to make an actual production release)
, use:
* To
list/start/finish release branches
, use:
git flow finish release <release>
git flow finish release 2.0
git flow release
git flow release start <release>
git flow release finish <release>
* To
start a new hotfix branch for 2.1, based on the 2.0 production release
, use:
* To
list/start/finish hotfix branches
, use:
git flow
start hotfix
<release> [<base-release>]
git flow
start hotfix 2.1 2.0
git flow
hotfix start
<release> [<base-release>]
git flow
hotfix finish <release>
* To
finish the hotfix branch
, use:
* To
list/start support branches
, use:
git flow
finish hotfix <release>
git flow
finish hotfix 2.1
git flow
support
git flow
support start <release> [<base-release>]
bump-version
View file @
0b378bc7
...
...
@@ -8,6 +8,11 @@ if [ $# -ne 1 ]; then
exit
1
fi
echo
"GITFLOW_VERSION=
$1
"
>
git-flow-version
if
!
sed
's/^GITFLOW_VERSION=.*$/GITFLOW_VERSION='
$1
'/g'
git-flow-version
>
.git-flow-version.new
;
then
echo
"Could not replace GITFLOW_VERSION variable."
>
&2
exit
2
fi
mv
.git-flow-version.new git-flow-version
git add git-flow-version
git commit
-m
"Bumped version number to
$1
"
git-flow-version
git-flow
View file @
0b378bc7
...
...
@@ -33,15 +33,17 @@ has() {
}
usage
()
{
.
"
$GITFLOW_DIR
/git-flow-version"
echo
"git-flow, version
$GITFLOW_VERSION
"
echo
"usage: git flow <subcommand>"
echo
echo
"usage: git flow <cmd> <type> <args>"
echo
" git flow init [<url>]"
echo
"Available subcommands are:"
echo
" init Initialize a new git repo with support for the branching model."
echo
" feature Manage your feature branches."
echo
" release Manage your release branches."
echo
" hotfix Manage your hotfix branches."
echo
" support Manage your support branches."
echo
" version Shows version information."
echo
echo
"<type> can be any of: feature, release, hotfix, support"
echo
echo
"Try 'git flow help <type>' for details."
echo
"Try 'git flow <subcommand> help' for details."
}
main
()
{
...
...
@@ -51,16 +53,9 @@ main() {
fi
# sanity checks
ACTION
=
"
$1
"
;
shift
if
[
"
$ACTION
"
=
"init"
]
;
then
gitflow_init
"
$@
"
exit
0
fi
BTYPE
=
"
$1
"
;
shift
SUBCOMMAND
=
"
$1
"
;
shift
if
[
!
-e
"
$GITFLOW_DIR
/git-flow-
$
BTYPE
"
]
;
then
if
[
!
-e
"
$GITFLOW_DIR
/git-flow-
$
SUBCOMMAND
"
]
;
then
usage
exit
1
fi
...
...
@@ -75,69 +70,27 @@ main() {
ALL_BRANCHES
=
"
$LOCAL_BRANCHES
$REMOTE_BRANCHES
"
# run command
.
"
$GITFLOW_DIR
/git-flow-
$
BTYPE
"
.
"
$GITFLOW_DIR
/git-flow-
$
SUBCOMMAND
"
if
!
typeset
-f
cmd_
$ACTION
>
/dev/null
;
then
if
!
typeset
-f
sub_main
>
/dev/null
;
then
usage
exit
1
fi
# run command
cmd_
$ACTION
"
$@
"
sub_main
"
$@
"
}
gitflow_init
()
{
echo
echo
"Summary of actions:"
if
!
git rev-parse
--git-dir
2>&1
>
/dev/null
;
then
git init
--quiet
echo
"- A new git repository at
$PWD
was created"
fi
if
!
git rev-parse
--quiet
--verify
HEAD 2>&1
>
/dev/null
;
then
touch
$README
git add
$README
git commit
--quiet
-m
"initial commit"
if
[
"
$MASTER_BRANCH
"
!=
"master"
]
;
then
git branch
-m
master
$MASTER_BRANCH
fi
echo
"- An initial commit was created at branch '
$MASTER_BRANCH
'"
fi
if
!
git rev-parse
--verify
$MASTER_BRANCH
2>&1
>
/dev/null
;
then
die
"Cannot find your master branch. Try: git branch -m <mymaster>
$MASTER_BRANCH
"
fi
gitflow_check_clean_working_tree
if
git remote |
grep
-q
$ORIGIN
;
then
git fetch
-q
$ORIGIN
gitflow_require_branches_equal
$MASTER_BRANCH
$ORIGIN
/
$MASTER_BRANCH
fi
if
git rev-parse
--verify
$DEVELOP_BRANCH
2>&1
>
/dev/null
;
then
gitflow_require_branches_equal
$DEVELOP_BRANCH
$ORIGIN
/
$DEVELOP_BRANCH
else
git checkout
-q
-b
$DEVELOP_BRANCH
$MASTER_BRANCH
echo
"- A new branch '
$DEVELOP_BRANCH
' was created"
echo
"- You are now on branch '
$DEVELOP_BRANCH
'"
fi
if
!
git remote |
grep
-q
$ORIGIN
;
then
if
[
"
$1
"
=
""
]
;
then
echo
"- No remote location was added. Try: git remote add
$ORIGIN
<url>"
else
git remote add
$ORIGIN
$1
echo
"- A new remote location '
$1
' was added"
fi
sub_main
()
{
SUBACTION
=
"
${
1
:-
default
}
"
;
shift
if
!
typeset
-f
cmd_
$SUBACTION
2>&1
>
/dev/null
;
then
warn
"Unknown subcommand: '
$1
'"
usage
exit
1
fi
echo
if
git remote |
grep
-q
$ORIGIN
;
then
git push
$ORIGIN
$MASTER_BRANCH
$DEVELOP_BRANCH
fi
# run the specified action
cmd_
$SUBACTION
"
$@
"
}
gitflow_check_clean_working_tree
()
{
...
...
git-flow-feature
View file @
0b378bc7
...
...
@@ -13,12 +13,12 @@
#
usage() {
echo "usage: git flow
list
feature"
echo " git flow
start feature
<name> [<base>]"
echo " git flow f
inish feature
<name> [<base>]"
echo " git flow
publish feature
<name>"
echo " git flow
track feature
<name>"
echo " git flow
diff feature
<name>"
echo "usage: git flow feature"
echo " git flow
feature start
<name> [<base>]"
echo " git flow f
eature finish
<name> [<base>]"
echo " git flow
feature publish
<name>"
echo " git flow
feature track
<name>"
echo " git flow
feature diff
<name>"
# TODO
#echo ""
#echo "options:"
...
...
@@ -46,6 +46,17 @@ parse_args() {
BRANCH=$PREFIX$NAME
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.feature || echo feature/)
FEATURE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$FEATURE_BRANCHES" ]; then
warn "No feature branches exist."
exit 0
fi
echo "$FEATURE_BRANCHES" | sed "s?^$PREFIX??g"
}
cmd_help() {
usage
exit 0
...
...
@@ -157,17 +168,6 @@ cmd_track() {
echo
}
cmd_list() {
# TODO: refactor this, because passing in this dummy "foo" is really ugly!
parse_args "$@" foo
FEATURE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$FEATURE_BRANCHES" ]; then
warn "No feature branches exist."
exit 0
fi
echo "$FEATURE_BRANCHES" | sed "s?^$PREFIX??g"
}
cmd_diff() {
parse_args "$@"
# TODO: if this feature has been based on a non-develop branch, we really
...
...
git-flow-hotfix
View file @
0b378bc7
...
...
@@ -13,8 +13,9 @@
#
usage() {
echo "usage: git flow start hotfix <version> [<base>]"
echo " git flow finish hotfix <version> [<base>]"
echo "usage: git flow hotfix"
echo " git flow hotfix start <version> [<base>]"
echo " git flow hotfix finish <version> [<base>]"
# TODO
#echo ""
#echo "options:"
...
...
@@ -39,6 +40,17 @@ parse_args() {
BRANCH=$PREFIX$VERSION
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
HOTFIX_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$HOTFIX_BRANCHES" ]; then
warn "No hotfix branches exist."
exit 0
fi
echo "$HOTFIX_BRANCHES" | sed "s?^$PREFIX??g"
}
cmd_help() {
usage
exit 0
...
...
git-flow-init
0 → 100644
View file @
0b378bc7
#
# git-flow -- A collection of Git extensions to provide high-level
# repository operations for Vincent Driessen's branching model.
#
# Original blog post presenting this model is found at:
# http://nvie.com/archives/323
#
# Feel free to contribute to this project at:
# http://github.com/nvie/gitflow
#
# Copyright (c) 2010 by Vincent Driessen
# Copyright (c) 2010 by Benedikt Böhm
#
usage() {
echo "usage: git flow init"
}
cmd_help() {
usage
exit 0
}
# Default entry when no SUBACTION is given
cmd_default() {
echo
echo "Summary of actions:"
if ! git rev-parse --git-dir 2>&1 >/dev/null; then
git init --quiet
echo "- A new git repository at $PWD was created"
fi
if ! git rev-parse --quiet --verify HEAD 2>&1 >/dev/null; then
touch $README
git add $README
git commit --quiet -m "initial commit"
if [ "$MASTER_BRANCH" != "master" ]; then
git branch -m master $MASTER_BRANCH
fi
echo "- An initial commit was created at branch '$MASTER_BRANCH'"
fi
if ! git rev-parse --verify $MASTER_BRANCH 2>&1 >/dev/null; then
die "Cannot find your master branch. Try: git branch -m <mymaster> $MASTER_BRANCH"
fi
gitflow_check_clean_working_tree
if git remote | grep -q $ORIGIN; then
git fetch -q $ORIGIN
gitflow_require_branches_equal $MASTER_BRANCH $ORIGIN/$MASTER_BRANCH
fi
if git rev-parse --verify $DEVELOP_BRANCH 2>&1 >/dev/null; then
gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
else
git checkout -q -b $DEVELOP_BRANCH $MASTER_BRANCH
echo "- A new branch '$DEVELOP_BRANCH' was created"
echo "- You are now on branch '$DEVELOP_BRANCH'"
fi
if ! git remote | grep -q $ORIGIN; then
if [ "$1" = "" ]; then
echo "- No remote location was added. Try: git remote add $ORIGIN <url>"
else
git remote add $ORIGIN $1
echo "- A new remote location '$1' was added"
fi
fi
echo
if git remote | grep -q $ORIGIN; then
git push $ORIGIN $MASTER_BRANCH $DEVELOP_BRANCH
fi
}
git-flow-release
View file @
0b378bc7
...
...
@@ -13,8 +13,9 @@
#
usage() {
echo "usage: git flow start release <version>"
echo " git flow finish release <version>"
echo "usage: git flow release"
echo " git flow release start <version>"
echo " git flow release finish <version>"
# TODO
#echo ""
#echo "options:"
...
...
@@ -40,6 +41,17 @@ parse_args() {
BRANCH=$PREFIX$VERSION
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.release || echo release/)
RELEASE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$RELEASE_BRANCHES" ]; then
warn "No release branches exist."
exit 0
fi
echo "$RELEASE_BRANCHES" | sed "s?^$PREFIX??g"
}
cmd_help() {
usage
exit 0
...
...
git-flow-support
View file @
0b378bc7
...
...
@@ -13,7 +13,8 @@
#
usage() {
echo "usage: git flow start support <version> [<base>]"
echo "usage: git flow support"
echo " git flow support start <version> [<base>]"
}
parse_args() {
...
...
@@ -29,6 +30,17 @@ parse_args() {
BRANCH=$PREFIX$VERSION
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.support || echo support/)
SUPPORT_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$SUPPORT_BRANCHES" ]; then
warn "No support branches exist."
exit 0
fi
echo "$SUPPORT_BRANCHES" | sed "s?^$PREFIX??g"
}
cmd_help() {
usage
exit 0
...
...
git-flow-version
View file @
0b378bc7
#
# git-flow -- A collection of Git extensions to provide high-level
# repository operations for Vincent Driessen's branching model.
#
# Original blog post presenting this model is found at:
# http://nvie.com/archives/323
#
# Feel free to contribute to this project at:
# http://github.com/nvie/gitflow
#
# Copyright (c) 2010 by Vincent Driessen
# Copyright (c) 2010 by Benedikt Böhm
#
GITFLOW_VERSION=0.2-dirty
usage() {
echo "usage: git flow version"
}
cmd_help() {
usage
exit 0
}
cmd_default() {
echo "$GITFLOW_VERSION"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment