1
0
nixfiles/pkgs/git-checkout-github-pr/git-checkout-github-pr.sh

45 lines
577 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ID=""
REMOTE="origin"
LOCAL_BRANCH=""
while [[ $# -gt 0 ]]; do
case $1 in
--remote)
REMOTE="$2"
shift
shift
;;
--local-branch)
LOCAL_BRANCH="$2"
shift
shift
;;
*)
if [[ -z "${ID}" ]]; then
ID="$1"
shift
else
echo "Unknown option $1"
exit 1
fi
;;
esac
done
if [[ -z "${ID}" ]]; then
echo "Specify GitHub PR number"
exit 1
fi
if [[ -z "${LOCAL_BRANCH}" ]]; then
LOCAL_BRANCH="pr/${ID}"
fi
git fetch "${REMOTE}" "pull/${ID}/head:${LOCAL_BRANCH}"
git switch "${LOCAL_BRANCH}"