You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动将GitLab提交镜像至GitHub,提升个人GitHub活跃度?

自动同步GitLab提交到GitHub的实用方案

以下是几种可靠的自动同步方法,能把你GitLab上的提交记录同步到GitHub,快速丰富你的GitHub贡献记录:

1. 本地脚本定时同步(适合个人小量仓库)

先在GitHub创建对应名称的空仓库,然后在本地克隆GitLab仓库,添加GitHub作为远程仓库:

git clone git@gitlab.com:你的用户名/仓库名.git
cd 仓库名
git remote add github git@github.com:你的用户名/仓库名.git

接着写一个简单的同步脚本(比如sync.sh):

#!/bin/bash
# 拉取GitLab最新代码(替换为你实际的分支名,比如main/master)
git pull gitlab main
# 推送所有分支和标签到GitHub
git push --mirror github

给脚本添加执行权限:chmod +x sync.sh,然后用系统定时任务(比如Linux的crontab、Windows的任务计划)定期执行,实现自动同步。

注意:提前配置好本地SSH密钥,确保能免密访问GitLab和GitHub仓库。

2. GitLab CI/CD流水线(推荐,提交即同步)

利用GitLab自带的CI/CD功能,每次GitLab仓库有新提交时自动触发同步:

  1. 在GitLab仓库根目录创建.gitlab-ci.yml文件:
sync-to-github:
  stage: deploy
  before_script:
    - mkdir -p ~/.ssh
    - echo "$GITHUB_SSH_KEY" > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh-keyscan github.com >> ~/.ssh/known_hosts
  script:
    - git remote add github git@github.com:你的用户名/仓库名.git
    - git push --mirror github
  only:
    - main  # 指定要同步的分支,可添加多个分支
  1. 在GitLab仓库的「设置」→「CI/CD」→「变量」中添加GITHUB_SSH_KEY变量,值为GitHub的SSH私钥(确保这个私钥有对应GitHub仓库的推送权限)。

这样每次你在GitLab提交代码、合并分支或打标签,流水线都会自动同步到GitHub,提交记录的作者信息完全保留,GitHub贡献图会正常显示这些提交。

3. 关键注意事项

  • 仅同步允许公开的仓库:严格遵守公司的代码保密规定,不要同步包含敏感信息的内部项目。
  • 初始同步前确保GitHub仓库为空:如果GitHub仓库已有内容,先手动拉取GitLab代码合并后再开启自动同步,避免冲突。
  • 作者信息一致性:同步后的提交会保留GitLab上的用户名和邮箱,确保GitHub账户的邮箱和GitLab提交邮箱一致,贡献才会显示在你的GitHub个人主页上。

内容的提问来源于stack exchange,提问作者user20926543

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:54:54