Skip to content

Instantly share code, notes, and snippets.

@dudymas
Created December 11, 2015 13:51
Show Gist options
  • Save dudymas/25c017faf24b435d0dd9 to your computer and use it in GitHub Desktop.
Save dudymas/25c017faf24b435d0dd9 to your computer and use it in GitHub Desktop.
#!/bin/echo please source me, do not run me
function git-setup-pullrequest-branch() {
PULLREQUEST=${1:?Please specify a branch name for your pull request}
REMOTE=${2:-origin}
CURRENT=$(git rev-parse --abbrev-ref HEAD)
git branch --set-upstream-to=${REMOTE}/${PULLREQUEST} 2>/dev/null
if [ $? -ne 0 ] ; then
echo "Create pull request branch ${REMOTE}/${PULLREQUEST}? [y/N]"
read answer
if [[ "${answer}" =~ 'y|Y' ]] ; then
git push -u $REMOTE ${CURRENT}:$PULLREQUEST
fi
fi
}
function git-close-pullrequest-branch() {
MASTER=${1:-master}
REMOTE=${2:-origin}
UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name @{u})
CURRENT=$(git rev-parse --abbrev-ref HEAD)
echo "Push $UPSTREAM to branch $MASTER on ${REMOTE}? [y/N]"
read answer
if [[ "${answer}" =~ 'y|Y' ]] ; then
git push $REMOTE ${UPSTREAM}:${MASTER}
else
return 0
fi
echo "Would you like to set your upstream back to ${REMOTE}/${MASTER}? [y/N]"
read answer
if [[ "${answer}" =~ 'y|Y' ]] ; then
git branch --set-upstream-to=${REMOTE}/${MASTER} 2>/dev/null
fi
}
alias gpr=git-setup-pullrequest-branch
alias gpr!=git-close-pullrequest-branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment