# 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 ) git remote add origin git@github.com:${ghuser}/${repo}.git git push -u origin master } # If your branch named like [issue_number]_some_description gh_issue() { local ghissue ghissue=`echo $(current_branch) | sed -e 's/\([0-9]*\).*/\1/'` if [ $ghissue ]; then echo "$ghissue" fi } pull_request() { local organization if [ $1 ]; then organization=$1 else organization=$( git config --get remote.origin.url | sed "s/^[^:]*:\([^\/]*\)\/.*/\1/" ) fi if [ $(gh_issue) ]; then issue="-i $(gh_issue)" else issue="" fi echo "hub pull-request $(echo $issue) -b $organization:master -h $organization:$(current_branch)" hub pull-request $(echo $issue) -b $organization:master -h $organization:$(current_branch) } # End Functions ############################################################# alias gpr="pull_request"