--- /dev/null
+# Setup hub function for git, if it is available; http://github.com/defunkt/hub
+if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
+ # eval `hub alias -s zsh`
+ function git(){
+ if ! (( $+_has_working_hub )); then
+ hub --version &> /dev/null
+ _has_working_hub=$(($? == 0))
+ fi
+ if (( $_has_working_hub )) ; then
+ hub "$@"
+ else
+ command git "$@"
+ fi
+ }
+fi
+
+# Functions #################################################################
+
+# https://github.com/dbb
+
+
+# empty_gh [NAME_OF_REPO]
+#
+# Use this when creating a new repo from scratch.
+empty_gh() { # [NAME_OF_REPO]
+ repo = $1
+ ghuser=$( git config github.user )
+
+ mkdir "$repo"
+ cd "$repo"
+ git init
+ touch README
+ git add README
+ git commit -m 'Initial commit.'
+ git remote add origin git@github.com:${ghuser}/${repo}.git
+ git push -u origin master
+}
+
+# new_gh [DIRECTORY]
+#
+# Use this when you have a directory that is not yet set up for git.
+# This function will add all non-hidden files to git.
+new_gh() { # [DIRECTORY]
+ cd "$1"
+ ghuser=$( git config github.user )
+
+ git init
+ # add all non-dot files
+ print '.*'"\n"'*~' >> .gitignore
+ git add ^.*
+ git commit -m 'Initial commit.'
+ git remote add origin git@github.com:${ghuser}/${repo}.git
+ git push -u origin master
+}
+
+# exist_gh [DIRECTORY]
+#
+# Use this when you have a git repo that's ready to go and you want to add it
+# to your GitHub.
+exist_gh() { # [DIRECTORY]
+ cd "$1"
+ name=$( git config user.name )
+ ghuser=$( git config github.user )
+ repo=$1
+
+ git remote add origin git@github.com:${ghuser}/${repo}.git
+ git push -u origin master
+}
+
+# End Functions #############################################################
+