一次Git Push,同时同步 GitHub 和阿里云

最近公司配置了阿里云云效 Git 用于存放项目代码 个人觉得放在公司的 Git 中更有安全感但我又不想放弃 GitHub 的绿块,如何解决呢? 通过信息检索和AI辅助我尝试实现了 将公司 Git 作为主分支,单次 Push 同时推送两个 Git 仓库 最终 Git 工作流如下: shell 本地仓库 │ │ git p

文章 · Angular · 2026/07/01

最近公司配置了阿里云云效 Git 用于存放项目代码

个人觉得放在公司的 Git 中更有安全感但我又不想放弃 GitHub 的绿块,如何解决呢?

通过信息检索和AI辅助我尝试实现了将公司 Git 作为主分支,单次 Push 同时推送两个 Git 仓库

最终 Git 工作流如下:

本地仓库
      │
      │ git pull
      ▼
origin(阿里云云效)
      │ git push
      ├────────► 阿里云云效
      └────────► GitHub

本文也适用于除云效外的其他仓库,流程相同只是细节不同。

前置准备

Git 准备

为什么先检查 Git 状态?

在修改远程仓库之前,不建议直接执行命令。

不同项目的 Git 配置可能完全不同,先确认当前仓库状态,才能避免覆盖已有配置。

建议执行的命令

git remote -v

// 返回结果示例
origin  https://github.com/ZaiHuaOvO/xxx.git (fetch)
origin  https://github.com/ZaiHuaOvO/xxx.git (push)

作用:查看有哪些 Remote 和 Fetch / Push 地址

需要确认

  • 是否只有一个 origin
  • 当前是否连接 GitHub
git branch -vv

// 返回结果示例
* master a613401 [origin/master] update

作用:查看当前所在分支、是否正常跟踪远程分支

需要确认:当前分支是否正常跟踪 origin/masterorigin/main

git remote show origin

// 返回结果示例
* remote origin
  Fetch URL: https://github.com/ZaiHuaOvO/micERP.git
  Push  URL: https://github.com/ZaiHuaOvO/micERP.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

作用:查看 origin 的完整信息,包括:Fetch URL、Push URL、HEAD Branch、Pull 默认来源、Push 默认目标

git config --get-all remote.origin.pushurl

// 返回结果示例
空(什么都没有)

作用:检查是否已经配置多个 Push 地址。

如果你和我一样只有单个 GitHub 推送地址并且也是 master 分支,那么就可以安心添加另一条 Push 地址了。

什么样的 Git 仓库不可以这么做

已经配置多个 Push 地址:继续添加可能会覆盖已有配置。

存在多个 Remote:需要考虑每个 Remote 的作用

当前分支没有 Upstream:没有分支就不存在“额外添加另一个分支”

推送流程

推送方式

在云效的空代码库中,已经给了几种推送方式:

为了标识身份,建议先完成 Git 全局设置

git config --global user.name "再花猫猫头" 
git config --global user.email "" 

方式一:克隆仓库

git clone https://codeup.aliyun.com/xxx/xxx.git
cd micERP
touch README.md
git add README.md
git commit -m "add README"
git push -u origin HEAD

方式二:已有文件夹或仓库

cd existing_folder
git init
git remote add origin https://codeup.aliyun.com/xxx/xxx.git
git add .
git commit
git push -u origin HEAD

方式三:导入代码库

git clone --bare https://git.example.com/your/project.git your_path
cd your_path
git remote set-url origin https://codeup.aliyun.com/xxx/xxx.git
git push origin --tags && git push origin --all

第一种方式适用于拷贝代码到本地

第二种方式适用于将一个没有远程分支的仓库推送到云效

第三种方式就适用于我们这种情况,将已有远程分支的仓库导入到云效,故选择第三种。

HTTPS配置

我们首先要点击头像-个人设置-HTTPS密码,在页面中配置好账号和密码

图中是我已经配置好的结果,第一次配置不需要绑定邮箱

执行推送

我们要先把仓库先推送到云效,将仓库的 origin 设置为云效。

git remote set-url origin https://codeup.aliyun.com/xxx/xxx.git

然后执行

git push -u origin master

这时候Git会弹窗信息验证,输入刚刚设置好的克隆账号和克隆密码

注意不要开输入法…我就这样错了两次还纳闷为什么…

到这一步如果一切顺利,你就已经可以在云效中看到自己的代码了。

给 origin 增加 GitHub Push 地址

执行:

git remote set-url --add --push origin https://codeup.aliyun.com/xxx/xxx.git

然后:

git remote set-url --add --push origin https://github.com/ZaiHuaOvO/xxx.git

--push 不会影响 Fetch 地址,它只是告诉 Git:"Push 时,同时推送到这些地址。"

检查配置是否成功

执行:

git remote show origin

理想情况下会看到类似:

Fetch URL:
    https://codeup.aliyun.com/...

Push URLs:
    https://codeup.aliyun.com/...
    https://github.com/ZaiHuaOvO/xxx.git

你也可以手动访问仓库地址 Commits 进行验证。