Skip to content

Commit 75fbdd7

Browse files
committed
Feature finish squash parameter
Adding an optional (false by default) -S option to 'git flow feature finish' to allow squashing the commit
1 parent 6fa8fed commit 75fbdd7

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

git-flow-feature

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ PREFIX=$(git config --get gitflow.prefix.feature)
4444
usage() {
4545
echo "usage: git flow feature [list] [-v]"
4646
echo " git flow feature start [-F] <name> [<base>]"
47-
echo " git flow feature finish [-rFkD] [<name|nameprefix>]"
47+
echo " git flow feature finish [-rFkDS] [<name|nameprefix>]"
4848
echo " git flow feature publish <name>"
4949
echo " git flow feature track <name>"
5050
echo " git flow feature diff [<name|nameprefix>]"
@@ -232,6 +232,7 @@ cmd_finish() {
232232
DEFINE_boolean rebase false "rebase instead of merge" r
233233
DEFINE_boolean keep false "keep branch after performing finish" k
234234
DEFINE_boolean force_delete false "force delete feature branch after finish" D
235+
DEFINE_boolean squash false "squash feature during merge" S
235236
parse_args "$@"
236237
expand_nameprefix_arg_or_current
237238

@@ -312,7 +313,13 @@ cmd_finish() {
312313
if [ "$(git rev-list -n2 "$DEVELOP_BRANCH..$BRANCH" | wc -l)" -eq 1 ]; then
313314
git merge --ff "$BRANCH"
314315
else
315-
git merge --no-ff "$BRANCH"
316+
if noflag squash; then
317+
git merge --no-ff "$BRANCH"
318+
else
319+
git merge --squash "$BRANCH"
320+
git commit
321+
git merge "$BRANCH"
322+
fi
316323
fi
317324

318325
if [ $? -ne 0 ]; then
@@ -353,7 +360,7 @@ helper_finish_cleanup() {
353360
git branch -d "$BRANCH"
354361
fi
355362
fi
356-
363+
t
357364
echo
358365
echo "Summary of actions:"
359366
echo "- The feature branch '$BRANCH' was merged into '$DEVELOP_BRANCH'"

0 commit comments

Comments
 (0)