Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link

commented Apr 17, 2014

Very nice!

@wjmelements

This comment has been minimized.

Copy link

commented May 14, 2018

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
You can’t perform that action at this time.