Added -k option to keep (feature|hotfix|relase) branch when calling 'finish'.
diff --git a/git-flow-feature b/git-flow-feature
index 8c7cacd..a38b0cc 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -44,7 +44,7 @@
 usage() {
 	echo "usage: git flow feature [list] [-v]"
 	echo "       git flow feature start [-F] <name> [<base>]"
-	echo "       git flow feature finish [-rF] <name|nameprefix>"
+	echo "       git flow feature finish [-rFk] <name|nameprefix>"
 	echo "       git flow feature publish <name>"
 	echo "       git flow feature track <name>"
 	echo "       git flow feature diff [<name|nameprefix>]"
@@ -180,7 +180,7 @@
 	parse_cmdline "$@"
 
 	# read arguments into global variables
-	NAME=$1
+	NAME=${!#}
 	BRANCH=$PREFIX$NAME
 }
 
@@ -232,6 +232,7 @@
 cmd_finish() {
 	DEFINE_boolean fetch false "fetch from $ORIGIN before performing finish" F
 	DEFINE_boolean rebase false 'rebase instead of merge' r
+	DEFINE_boolean keep false 'keep branch after performing finish' k
 	parse_args "$@"
 	expand_nameprefix_arg
 
@@ -343,13 +344,23 @@
 	if flag fetch; then
 		git push "$ORIGIN" ":refs/heads/$BRANCH"
 	fi
-	git branch -D "$BRANCH"
+	
+	
+	if flag keep; then
+		echo "Keep this branch" > /dev/null
+	else
+		git branch -d "$BRANCH"
+	fi
 
 	echo
 	echo "Summary of actions:"
 	echo "- The feature branch '$BRANCH' was merged into '$DEVELOP_BRANCH'"
 	#echo "- Merge conflicts were resolved"		# TODO: Add this line when it's supported
-	echo "- Feature branch '$BRANCH' has been removed"
+	if flag keep; then
+		echo "- Feature branch '$BRANCH' has been kept"
+	else
+		echo "- Feature branch '$BRANCH' has been removed"
+	fi
 	echo "- You are now on branch '$DEVELOP_BRANCH'"
 	echo
 }
diff --git a/git-flow-hotfix b/git-flow-hotfix
index 84b2ac5..a05c4aa 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -45,7 +45,7 @@
 usage() {
 	echo "usage: git flow hotfix [list] [-v]"
 	echo "       git flow hotfix start [-F] <version> [<base>]"
-	echo "       git flow hotfix finish [-Fsump] <version>"
+	echo "       git flow hotfix finish [-Fsumpk] <version>"
 }
 
 cmd_default() {
@@ -124,7 +124,7 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	VERSION=$1
+	VERSION=${!#}
 	BRANCH=$PREFIX$VERSION
 }
 
@@ -194,6 +194,7 @@
 	DEFINE_string signingkey "" "use the given GPG-key for the digital signature (implies -s)" u
 	DEFINE_string message "" "use the given tag message" m
 	DEFINE_boolean push false "push to $ORIGIN after performing finish" p
+	DEFINE_boolean keep false 'keep branch after performing finish' k
 	parse_args "$@"
 	require_version_arg
 
@@ -257,7 +258,11 @@
 	fi
 
 	# delete branch
-	git branch -d "$BRANCH"
+	if flag keep; then
+		echo "Keep this branch" > /dev/null
+	else
+		git branch -d "$BRANCH"
+	fi
 
 	if flag push; then
 		git push "$ORIGIN" "$DEVELOP_BRANCH" || \
@@ -274,7 +279,11 @@
 	echo "- Hotfix branch has been merged into '$MASTER_BRANCH'"
 	echo "- The hotfix was tagged '$VERSION_PREFIX$VERSION'"
 	echo "- Hotfix branch has been back-merged into '$DEVELOP_BRANCH'"
-	echo "- Hotfix branch '$BRANCH' has been deleted"
+	if flag keep; then
+		echo "- Hotfix branch '$BRANCH' has been kept"
+	else
+		echo "- Hotfix branch '$BRANCH' has been deleted"
+	fi
 	if flag push; then
 		echo "- '$DEVELOP_BRANCH', '$MASTER_BRANCH' and tags have been pushed to '$ORIGIN'"
 	fi
diff --git a/git-flow-release b/git-flow-release
index b28bf42..d436bb1 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -45,7 +45,7 @@
 usage() {
 	echo "usage: git flow release [list] [-v]"
 	echo "       git flow release start [-F] <version>"
-	echo "       git flow release finish [-Fsump] <version>"
+	echo "       git flow release finish [-Fsumpk] <version>"
 	echo "       git flow release publish <name>"
 	echo "       git flow release track <name>"
 }
@@ -121,7 +121,7 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	VERSION=$1
+	VERSION=${!#}
 	BRANCH=$PREFIX$VERSION
 }
 
@@ -197,6 +197,7 @@
 	DEFINE_string signingkey "" "use the given GPG-key for the digital signature (implies -s)" u
 	DEFINE_string message "" "use the given tag message" m
 	DEFINE_boolean push false "push to $ORIGIN after performing finish" p
+	DEFINE_boolean keep false 'keep branch after performing finish' k
 
 	parse_args "$@"
 	require_version_arg
@@ -262,7 +263,11 @@
 	fi
 
 	# delete branch
-	git branch -d "$BRANCH"
+	if flag keep; then
+		echo "Keep this branch" > /dev/null
+	else
+		git branch -d "$BRANCH"
+	fi
 
 	if flag push; then
 		git push "$ORIGIN" "$DEVELOP_BRANCH" || \
@@ -281,7 +286,11 @@
 	echo "- Release branch has been merged into '$MASTER_BRANCH'"
 	echo "- The release was tagged '$tagname'"
 	echo "- Release branch has been back-merged into '$DEVELOP_BRANCH'"
-	echo "- Release branch '$BRANCH' has been deleted"
+	if flag keep; then
+		echo "- Release branch '$BRANCH' has been kept"
+	else
+		echo "- Release branch '$BRANCH' has been deleted"
+	fi
 	if flag push; then
 		echo "- '$DEVELOP_BRANCH', '$MASTER_BRANCH' and tags have been pushed to '$ORIGIN'"
 		echo "- Release branch '$BRANCH' in '$ORIGIN' has been deleted."