Skip to content

Instantly share code, notes, and snippets.

@devongovett
Created April 10, 2014 16:32
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save devongovett/10399980 to your computer and use it in GitHub Desktop.
Save devongovett/10399980 to your computer and use it in GitHub Desktop.
Bash script to make a pull request from the current git repository. Tries the upstream remote if possible, otherwise uses origin.
# put this in your .bash_profile
pull_request() {
to_branch=$1
if [ -z $to_branch ]; then
to_branch="master"
fi
# try the upstream branch if possible, otherwise origin will do
upstream=$(git config --get remote.upstream.url)
origin=$(git config --get remote.origin.url)
if [ -z $upstream ]; then
upstream=$origin
fi
to_user=$(echo $upstream | sed -e 's/.*[\/:]\([^/]*\)\/[^/]*$/\1/')
from_user=$(echo $origin | sed -e 's/.*[\/:]\([^/]*\)\/[^/]*$/\1/')
repo=$(basename `git rev-parse --show-toplevel`)
from_branch=$(git rev-parse --abbrev-ref HEAD)
open "https://github.com/$to_user/$repo/pull/new/$to_user:$to_branch...$from_user:$from_branch"
}
# usage
pull_request # PR to master
pull_request other_branch # PR to other_branch
@swernerx
Copy link

Very nice!

@wjmelements
Copy link

Similar: https://github.com/wjmelements/scripts#cpr

Except that the pull request is edited in your $EDITOR instead of the browser, and it uses the github API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment