方便的git别名”git pr”在OSS维护中十分有用
我将介绍一个方便的别名,是从公司的人那里得知的。很可能这个来源是这个,感谢作者gnarf先生。
这个别名是用来管理拉取请求的,似乎主要适用于进行代码审核和开源软件维护的人们。
安装
请将下面的.gitconfig文件复制一份或者执行add-pr-alias.sh文件。
# for github remotes
[alias]
pr = "!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"
pr-clean = "!git for-each-ref refs/heads/pr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done"
# for bitbucket/stash remotes
spr = "!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull-requests/$1/from:pr/$1 && git checkout pr/$1; }; f"
#!/bin/sh
# For github
git config --global alias.pr '!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f'
git config --global alias.pr-clean '!git for-each-ref refs/heads/pr/* --format="%(refname)" | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done'
# For stash/bitbucket
git config --global alias.spr '!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull-requests/$1/from:pr/$1 && git checkout pr/$1; }; f'
用法
通过使用该别名,您可以轻松将远程拉取请求下载到本地进行检查。
コマンド内容
git pr 4
ローカルにpr/4
というブランチを作り、upstream
もしくはorigin
の4番のプルリクエストにチェックアウトします。git pr 4 someremote
ローカルにpr/4
というブランチを作り任意のリモート(someremote
)の4番のプルリクエストにチェックアウトします。git pr-clean
ローカルリポジトリからpr/*
の形の名前を持つブランチを全て削除します。git spr
git pr
と同じ動きをするが、bitbucketやstashを使う時はこちらを使う