使用阿里云效同步 Git 仓库到 Github

2021-11-29

前言

有时 Github 网络的不稳定性实在令人头痛,push 总是失败,而且需要把主仓库放在 Github 而非 Gitee 等国内平台,虽然可以通过配置代理进行,不过也可以曲线救国,选择通过 push 到国内代码管理平台,然后通过 CI 平台自动推送到 Github。

阿里云效综合了代码仓库和 CI 平台,私有代码仓库免费,免费构建时间足够支撑我们这点小事,并且执行环境可以选香港保证了能 push 到 GitHub,所以选择了阿里云效。

理论上所有能通过 git push 触发 CI(CI 的基本操作了)并且基础环境存在 git 而且网络良好的平台都可以按照本文方法进行,甚至有更简单的比如 Gitlab 直接支持推送到 Github,至于本文为何没有选用 Gitlab,纯属个人偏好。

步骤

流程如下:

git-codeup-github-flow

另外贴一下流水线的命令:

1git config --global user.name "Your Name"
2git config --global user.email [email protected]
3git clone -b main https://account:[email protected]/.../xxx.git
4cd xxx
5git remote rm origin
6git remote add origin https://[email protected]/.../xxx.git
7git branch -M main
8git push -u origin main

具体的流程不细说,仅提一下需要注意的地方:

  1. 云效的 Codeup 是私有仓库,所以 git clone 时需要提供账号密码,我们可以直接通过 https://account:[email protected] 的方式进行访问。
  2. Github 为了安全考虑不在支持 HTTPS 访问中直接加入账号密码,而是使用 Personal Access Token,所以需要在 git remote add 命令中添加 personal_access_token
  3. Github 默认分支是 main,所以需要在 git branch -M 命令中改为 main(另外我的 Codeup 主分支也设为了 main,所以 clone 时加入了分支选择)。