-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Team git bash shortcuts
Jeremy Elbourn edited this page Oct 17, 2016
·
9 revisions
This is a collection of team members' git and bash shortcuts that other may (or may not) find useful.
Replace jelbourn
with the name of your github fork. Assumes you have an https
remote for upstream called upstream-http
.
[alias]
co = checkout
br = branch
df = diff
dif = diff
ca = commit -a
ri = git rebase -i upstream/master
added = diff --cached --name-only
cam = commit -a --amend --no-edit
br-name = "!git rev-parse --abbrev-ref HEAD"
url = "!f() { URL=$(git config --get remote.upstream-http.url); echo ${URL/.git/}; }; f"
sync = !git fetch upstream && git rebase upstream/master
export = "!sh ~/scripts/github-pr-export.sh"
submit = "!git push upstream $(git br-name):master"
patch = "!f() { URL=$(git config --get remote.upstream-http.url); curl -L ${URL/.git//pull/$1.patch} | git am; }; f"
(assumes you've set up your remote to fetch pull requests)
#!/usr/bin/env bash
git push -f jelbourn $(git br-name)
git fetch upstream refs/pull/*/head:refs/remotes/upstream/pr/* > /dev/null
SHA=$(git rev-parse HEAD)
PR_BRANCH=$(git branch -ra --contains ${SHA} | grep 'pr/')
if [ "${PR_BRANCH}" = "" ]; then
echo 'Create PR:'
echo $(git url)/compare/master...jelbourn:$(git br-name)?expand=1
else
PR_NUMBER=$(echo ${PR_BRANCH} | cut -d'/' -f4)
PR_URL=$(git url)/pull/${PR_NUMBER}
echo "Exported to ${PR_URL}"
fi
Bash function to patch a pull request into your local. Assumes the main repo is upstream
.
Originally written by @pkozlowski-opensource, modified by @jelbourn
# Merge locally a pull request from GitHub; amends the commit message to include PR number
# Usage: `ghpr 1234`
function ghpr() {
pr=${1:?"Pull request number is mandatory"}
remote_url=$(git config --get remote.upstream.url)
pr_patch_url=${remote_url/.git//pull/$1.patch}
echo ${pr_patch_url}
curl -kL ${pr_patch_url} | git am -3 && git commit --amend -m "$(git show --format=%B HEAD -s)
Closes #${pr}"
}