First Commit
diff --git a/completion/git_flow.bash b/completion/git_flow.bash
new file mode 100644
index 0000000..c76d323
--- /dev/null
+++ b/completion/git_flow.bash
@@ -0,0 +1,177 @@
+#!bash
+#
+# git-flow-completion
+# ===================
+# 
+# Bash completion support for [git-flow](http://github.com/nvie/gitflow)
+# 
+# The contained completion routines provide support for completing:
+# 
+#  * git-flow init and version
+#  * feature, hotfix and release branches
+#  * remote feature branch names (for `git-flow feature track`)
+# 
+# 
+# Installation
+# ------------
+# 
+# To achieve git-flow completion nirvana:
+# 
+#  0. Install git-completion.
+# 
+#  1. Install this file. Either:
+# 
+#     a. Place it in a `bash-completion.d` folder:
+# 
+#        * /etc/bash-completion.d
+#        * /usr/local/etc/bash-completion.d
+#        * ~/bash-completion.d
+# 
+#     b. Or, copy it somewhere (e.g. ~/.git-flow-completion.sh) and put the following line in
+#        your .bashrc:
+# 
+#            source ~/.git-flow-completion.sh
+# 
+#  2. If you are using Git < 1.7.1: Edit git-completion.sh and add the following line to the giant
+#     $command case in _git:
+# 
+#         flow)        _git_flow ;;
+# 
+# 
+# The Fine Print
+# --------------
+# 
+# Copyright (c) 2010 [Justin Hileman](http://justinhileman.com)
+# 
+# Distributed under the [MIT License](http://creativecommons.org/licenses/MIT/)
+
+_git_flow ()
+{
+	local subcommands="init feature release hotfix"
+	local subcommand="$(__git_find_subcommand "$subcommands")"
+	if [ -z "$subcommand" ]; then
+		__gitcomp "$subcommands"
+		return
+	fi
+
+	case "$subcommand" in
+	feature)
+		__git_flow_feature
+		return
+		;;
+	release)
+		__git_flow_release
+		return
+		;;
+	hotfix)
+		__git_flow_hotfix
+		return
+		;;
+	*)
+		COMPREPLY=()
+		;;
+	esac
+}
+
+__git_flow_feature ()
+{
+	local subcommands="list start finish publish track diff rebase checkout pull"
+	local subcommand="$(__git_find_subcommand "$subcommands")"
+	if [ -z "$subcommand" ]; then
+		__gitcomp "$subcommands"
+		return
+	fi
+
+	case "$subcommand" in
+	pull)
+		__gitcomp "$(__git_remotes)"
+		return
+		;;
+	checkout|finish|diff|rebase)
+		__gitcomp "$(__git_flow_list_features)"
+		return
+		;;
+	publish)
+		__gitcomp "$(comm -23 <(__git_flow_list_features) <(__git_flow_list_remote_features))"
+		return
+		;;
+	track)
+		__gitcomp "$(__git_flow_list_remote_features)"
+		return
+		;;
+	*)
+		COMPREPLY=()
+		;;
+	esac
+}
+
+__git_flow_list_features ()
+{
+	git flow feature list 2> /dev/null | tr -d ' |*'
+}
+
+__git_flow_list_remote_features ()
+{
+	git branch -r 2> /dev/null | grep "origin/$(__git_flow_feature_prefix)" | awk '{ sub(/^origin\/$(__git_flow_feature_prefix)/, "", $1); print }'
+}
+
+__git_flow_feature_prefix ()
+{
+	git config gitflow.prefix.feature 2> /dev/null || echo "feature/"
+}
+
+__git_flow_release ()
+{
+	local subcommands="list start finish"
+	local subcommand="$(__git_find_subcommand "$subcommands")"
+	if [ -z "$subcommand" ]; then
+		__gitcomp "$subcommands"
+		return
+	fi
+	
+	case "$subcommand" in
+	finish)
+		__gitcomp "$(__git_flow_list_releases)"
+		return
+		;;
+	*)
+		COMPREPLY=()
+		;;
+	esac
+
+}
+
+__git_flow_list_releases ()
+{
+	git flow release list 2> /dev/null
+}
+
+__git_flow_hotfix ()
+{
+	local subcommands="list start finish"
+	local subcommand="$(__git_find_subcommand "$subcommands")"
+	if [ -z "$subcommand" ]; then
+		__gitcomp "$subcommands"
+		return
+	fi
+
+	case "$subcommand" in
+	finish)
+		__gitcomp "$(__git_flow_list_hotfixes)"
+		return
+		;;
+	*)
+		COMPREPLY=()
+		;;
+	esac
+}
+
+__git_flow_list_hotfixes ()
+{
+	git flow hotfix list 2> /dev/null
+}
+
+# temporarily wrap __git_find_on_cmdline() for backwards compatibility
+if [ -z "`type -t __git_find_subcommand`" ]; then
+	alias __git_find_subcommand=__git_find_on_cmdline
+fi
\ No newline at end of file