diff --git a/git-flow-feature b/git-flow-feature
new file mode 100755
index 0000000..fc7a794
--- /dev/null
+++ b/git-flow-feature
@@ -0,0 +1,155 @@
+#
+# gitflow -- A collection of Git wrapper scripts 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 start feature <name> [<base>]"
+	echo "       git flow finish feature <name> [<base>]"
+	echo "       git flow publish feature <name>"
+	echo "       git flow track feature <name>"
+	# TODO
+	#echo ""
+	#echo "options:"
+	#echo "--option    Explanation"
+	#echo ""
+	#echo "start-only options:"
+	#echo "--option    Explanation"
+	#echo ""
+	#echo "finish-only options:"
+	#echo "--rebase    Rebases the feature branch on top of develop, instead of merging"
+	#echo "--squash    Squashes all commits of the feature branch into a single commit"
+	#echo "            on develop"
+	#echo "--push      Push to the origin repo when finished"
+}
+
+parse_args() {
+	NAME="$1"
+	BASE="${2:-develop}"
+	if [ "$NAME" = "" ]; then
+		echo "Missing argument <name>."
+		usage
+		exit 1
+	fi
+	BRANCH=feature/$NAME
+}
+
+cmd_help() {
+	usage
+	exit 0
+}
+
+cmd_start() {
+	parse_args "$@"
+
+	# sanity checks
+	gitflow_check_clean_working_tree
+	gitflow_require_branch_absent $BRANCH
+	if [ "$BASE" = "develop" ]; then
+		git fetch origin develop
+		gitflow_require_branches_equal develop origin/develop
+	fi
+
+	# create branch
+	git checkout -b $BRANCH $BASE
+
+	echo
+	echo "Summary of actions:"
+	echo "- A new branch '$BRANCH' was created, based on '$BASE'"
+	echo "- You are now on branch '$BRANCH'"
+	echo ""
+	echo "Now, start committing on your feature. When done, use:"
+	echo ""
+	echo "     git flow finish feature $NAME"
+	echo
+}
+
+cmd_finish() {
+	parse_args "$@"
+
+	# sanity checks
+	gitflow_check_clean_working_tree
+	gitflow_require_branch $BRANCH
+	git fetch origin
+	if has origin/$BRANCH $REMOTE_BRANCHES; then
+		gitflow_require_branches_equal $BRANCH origin/$BRANCH
+	fi
+	if [ "$BASE" = "develop" ]; then
+		gitflow_require_branches_equal develop origin/develop
+	fi
+
+	# merge into BASE
+	git checkout $BASE
+	if [ "$(git rev-list -n2 $BASE..$BRANCH | wc -l)" = "1" ]; then
+		git merge --ff $BRANCH
+	else
+		git merge --no-ff $BRANCH
+	fi
+
+	# delete branch
+	# TODO: How do we handle merge conflicts here??
+	git push origin :refs/heads/$BRANCH
+	git branch -d $BRANCH
+
+	echo
+	echo "Summary of actions:"
+	echo "- The feature branch '$BRANCH' was merged into '$BASE'"
+	#echo "- Merge conflicts were resolved"		# TODO: Add this line when it's supported
+	echo "- Feature branch '$BRANCH' has been removed"
+	echo "- You are now on branch '$BASE'"
+	echo
+}
+
+cmd_publish() {
+	parse_args "$@"
+
+	# sanity checks
+	gitflow_check_clean_working_tree
+	gitflow_require_branch $BRANCH
+	git fetch origin
+	gitflow_require_branch_absent origin/$BRANCH
+
+	# create remote branch
+	git push origin $BRANCH:refs/heads/$BRANCH
+	git fetch origin
+
+	# configure remote tracking
+	git config branch.$BRANCH.remote origin
+	git config branch.$BRANCH.merge refs/heads/$BRANCH
+	git checkout $BRANCH
+
+	echo
+	echo "Summary of actions:"
+	echo "- A new remote branch '$BRANCH' was created"
+	echo "- The local branch '$BRANCH' was configured to track the remote branch"
+	echo "- You are now on branch '$BRANCH'"
+	echo
+}
+
+cmd_track() {
+	parse_args "$@"
+
+	# sanity checks
+	gitflow_check_clean_working_tree
+	gitflow_require_branch_absent $BRANCH
+	git fetch origin
+	gitflow_require_branch origin/$BRANCH
+
+	# create tracking branch
+	git checkout -b $BRANCH origin/$BRANCH
+
+	echo
+	echo "Summary of actions:"
+	echo "- A new remote tracking branch '$BRANCH' was created"
+	echo "- You are now on branch '$BRANCH'"
+	echo
+}
