如何通过分支在GitLab中镜像GitHub Pull Requests?现有拉取方案无法查看PR提交
实现GitLab分支镜像GitHub Pull Requests的方案
1. 为GitLab项目添加GitHub远程源
在GitLab项目的终端(或本地克隆项目后操作)执行以下命令,将目标GitHub仓库设为额外远程源:
git remote add github https://github.com/<你的GitHub用户名>/<仓库名>.git
2. 用GitLab CI/CD自动同步PR到专属分支
通过GitLab的CI/CD流水线,定期将GitHub的所有PR同步为GitLab的pr/<PR编号>格式分支,每个PR对应一个独立分支,方便查看提交记录。
在项目根目录创建.gitlab-ci.yml文件,写入以下内容:
sync-github-prs: stage: sync only: - schedules script: # 拉取GitHub所有PR的head分支到本地pr/*分支 - git fetch github '+refs/pull/*/head:refs/heads/pr/*' # 将本地pr/*分支推送到GitLab远程仓库 - git push origin '+refs/heads/pr/*:refs/heads/pr/*'
随后在GitLab项目的CI/CD > 计划页面创建定时任务(比如每小时执行一次),即可实现自动同步。
3. 查看PR的提交记录
同步完成后,在GitLab的分支页面就能看到所有pr/开头的分支,点击任意分支即可查看对应GitHub PR的完整提交记录,操作逻辑和查看普通分支完全一致。
4. 手动同步(可选)
如果不需要定时自动同步,也可以在需要时手动执行以下命令完成同步:
git fetch github '+refs/pull/*/head:refs/heads/pr/*' git push origin '+refs/heads/pr/*:refs/heads/pr/*'
内容的提问来源于stack exchange,提问作者Bartholome SIMPSON
相关产品推荐
相关产品推荐

