如何在推送分支至GitHub后添加带Pull Request页面链接的提示消息?
实现GitHub推送分支后自动显示Pull Request链接提示
当然可以实现这个需求!GitHub默认没有像GitLab或Bitbucket那样的推送后PR提示,但我们可以借助Git的钩子脚本轻松搞定,步骤超简单:
方法一:为单个仓库配置
- 打开本地仓库的
.git/hooks目录(这个目录默认隐藏,需要显示隐藏文件) - 创建一个名为
post-push的文件(无需后缀),写入以下脚本内容:
#!/bin/bash # 获取当前推送的分支名称 BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD) # 获取远程仓库的URL(默认取origin) REMOTE_URL=$(git config --get remote.origin.url) # 从URL中提取GitHub用户名和仓库名,兼容SSH和HTTPS两种地址格式 if [[ $REMOTE_URL == git@github.com:* ]]; then REPO_INFO=${REMOTE_URL#git@github.com:} elif [[ $REMOTE_URL == https://github.com/* ]]; then REPO_INFO=${REMOTE_URL#https://github.com/} fi # 去掉末尾的.git后缀 REPO_INFO=${REPO_INFO%.git} # 拆分用户名和仓库名 USERNAME=$(echo $REPO_INFO | cut -d'/' -f1) REPO_NAME=$(echo $REPO_INFO | cut -d'/' -f2) # 生成新建Pull Request的链接 PR_LINK="https://github.com/$USERNAME/$REPO_NAME/pull/new/$BRANCH_NAME" # 输出模仿GitLab风格的提示信息 echo -e "\nremote: To create a pull request for *$BRANCH_NAME*, visit:" echo -e "remote: $PR_LINK"
- 给脚本添加执行权限,在终端运行:
chmod +x .git/hooks/post-push
完成后,下次推送分支到GitHub时,就会看到类似这样的提示:
Total 0 (delta 0), reused 0 (delta 0)
remote: To create a pull request for feature/login-flow, visit:
remote: https://github.com/your-username/your-repo/pull/new/feature/login-flow
To github.com:your-username/your-repo.git
- [new branch] feature/login-flow -> feature/login-flow
方法二:全局配置(所有新建仓库自动生效)
如果你想让所有新创建的Git仓库都自动拥有这个功能,可以设置Git的模板目录:
- 在用户目录下创建模板钩子目录:
mkdir -p ~/.git-template/hooks
- 把上面的
post-push脚本复制到该目录,并添加执行权限:
cp .git/hooks/post-push ~/.git-template/hooks/ chmod +x ~/.git-template/hooks/post-push
- 配置Git全局使用这个模板目录:
git config --global init.templatedir '~/.git-template'
这样之后,你新建的任何Git仓库都会自动包含这个post-push钩子,推送分支后都会显示PR链接提示啦!
内容的提问来源于stack exchange,提问作者artem_russkikh
相关产品推荐
相关产品推荐

