如何通过Git CLI获取当前分支关联的PR/MR链接?
通过Git CLI获取当前分支关联的PR/MR链接
下面分主流代码托管平台给出实用方案:
GitHub
用官方
ghCLI工具(推荐)
安装完成后,直接打开当前分支的PR页面:gh pr view --web
仅输出PR链接:gh pr view --json url --jq '.url'无额外工具的手动方法
执行以下命令拼接PR搜索链接(GitHub会自动匹配对应分支的PR):BRANCH=$(git rev-parse --abbrev-ref HEAD) REMOTE_URL=$(git config --get remote.origin.url) if [[ $REMOTE_URL == git@github.com:* ]]; then REPO=$(echo $REMOTE_URL | sed 's/git@github.com://;s/.git$//') elif [[ $REMOTE_URL == https://github.com/* ]]; then REPO=$(echo $REMOTE_URL | sed 's/https:\/\/github.com\///;s/.git$//') fi echo "https://github.com/$REPO/pulls?q=is%3Apr+head%3A$BRANCH"
GitLab
用官方
glabCLI工具(推荐)
打开当前分支的MR页面:glab mr view --web
仅输出MR链接:glab mr view --json web_url --jq '.web_url'无额外工具的手动方法
执行以下命令拼接MR搜索链接:BRANCH=$(git rev-parse --abbrev-ref HEAD) REMOTE_URL=$(git config --get remote.origin.url) if [[ $REMOTE_URL == git@gitlab.com:* ]]; then REPO=$(echo $REMOTE_URL | sed 's/git@gitlab.com://;s/.git$//') elif [[ $REMOTE_URL == https://gitlab.com/* ]]; then REPO=$(echo $REMOTE_URL | sed 's/https:\/\/gitlab.com\///;s/.git$//') fi echo "https://gitlab.com/$REPO/-/merge_requests?scope=all&search=$BRANCH"
Bitbucket
用官方
bitbucketCLI工具(推荐)
列出当前分支关联的PR:bitbucket pullrequests list --repo $(basename $(git rev-parse --show-toplevel)) --head $BRANCH
如需直接打开,可结合系统命令:bitbucket pullrequests list ... | grep 'URL' | cut -d' ' -f2 | xargs open(Mac)或xdg-open(Linux)无额外工具的手动方法
执行以下命令拼接PR搜索链接:BRANCH=$(git rev-parse --abbrev-ref HEAD) REMOTE_URL=$(git config --get remote.origin.url) if [[ $REMOTE_URL == git@bitbucket.org:* ]]; then REPO=$(echo $REMOTE_URL | sed 's/git@bitbucket.org://;s/.git$//') elif [[ $REMOTE_URL == https://*bitbucket.org/* ]]; then REPO=$(echo $REMOTE_URL | sed 's/https:\/\/.*@bitbucket.org\///;s/.git$//') fi echo "https://bitbucket.org/$REPO/pull-requests?search=$BRANCH"
内容的提问来源于stack exchange,提问作者Angel
相关产品推荐
相关产品推荐

