如何同步 Github 和 Gitee的仓库代码

本文介绍了如何从GitHub导入仓库并手动同步,同时探讨了两种方法实现GitHub和Gitee的自动同步,包括使用Yikun/hub-mirror-action和wearerequired/git-mirror-action的工作流脚本配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、从github导入仓库,手动同步

在这里插入图片描述

在这里插入图片描述
在 Gitee 的项目主页,导入的仓库会会有一个同步的按钮,你只用点一下,即可与 Github 同步更新,但是注意这里的同步功能默认是强制同步。有点麻烦的是,我们需要在推送到 Github 后,再到 Gitee 项目主页手动点击一下。

二、推送两个仓库

可以通过本地仓库的形式,同时推送到github和gitee,相当于执行两次commit的操作,push两次。但显然也不是我想要的。
在这里插入图片描述

git remote add 远程库名 远程库地址
eg: git remote add gitee git@github.com:xxx/xxx.git

除此之外我们还可以在sh脚本文件里deploy.sh直接推送2个仓库

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e
# 定义变量
dist_path=docs/.vuepress/dist # 打包生成的文件夹路径

# 生成静态文件
npm run docs:build

# 进入生成的文件夹
cd $dist_path

git init
git add -A
git commit -m 'deploy'

# 如果发布到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:ytking/test.git master:gh-pages
git push -f git@gitee.com:ytanck/test.git master:gh-pages

cd -
rm -rf $dist_path

当我们执行 sh deploy.sh 的时候,就会自动往两个仓库里推送。

三、Github Actions 自动同步

官方的Action方法Github Action。可以参考阮一峰老师的《GitHub Actions 入门教程》

运用CI/CD的思想,从github中自动化的执行流程,完美符合我们的预期。
需要将SSH公钥传到 Gitee和GitHub 上,这样就可以实现 GitHub 和 Gitee 的通信。

Actions方法1:使用Yikun/hub-mirror-action@master
需要SSH私钥和gitee私人令牌
在项目根目录新建.github/workflows/syncToGitee.yml脚本如下:

name: Sync to Gitee

on:
  push:
    branches: [master, gh-pages]

  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Sync to Gitee
        uses: Yikun/hub-mirror-action@master
        with:
          # 必选,需要同步的Github用户(源)
          src: 'github/ytking'
          # 必选,需要同步到的Gitee的用户(目的)
          dst: 'gitee/ytanck'
          # 必选,Gitee公钥对应的私钥
          dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
          # 必选,Gitee对应的用于创建仓库的token
          dst_token:  ${{ secrets.GITEE_TOKEN }}
          # static_list 仓库名称 单一仓库同步
          static_list: "ytking"
          # 如果是组织,指定组织即可,默认为用户user
          # account_type: org
          # 还有黑、白名单,静态名单机制,可以用于更新某些指定库
          # static_list: repo_name
          # black_list: 'repo_name,repo_name2'
          # white_list: 'repo_name,repo_name2'
          # force_update 表示启用 git push -f 强制同步
          force_update: true
          # debug 为 true 表示启用 debug 开关,会显示所有执行命令
          debug: true

src 表示需要被同步的源端账户名,即我们 Github 的账户名,因为我的 Github ID 是 ytking,所以这里我应该改成 github/ytking

dst 表示需要同步到的目的端账户名,即我们 Gitee 的账户名,因为我的 Gitee ID 也是 ytanck,所以这里我应该改成 gitee/ytanck

dst_key 表示用于在目的端上传代码的私钥SSH,然后将其保存在 Secrets 中。如何获取SSH请自行百度

复制私钥内容,然后在要同步的 Github 仓库中,选择 “Setting” -> “Secrets” -> “New repository secret”
在这里插入图片描述
如何获取GITEEN_TOKEN,在 Gitee 上创建一个私人令牌(token),这个记得保存,因为它只会出现一次

在这里插入图片描述
配置完成后我们push分支,使用Sync to Gitee的 Action的workflow已经运行起来了
在这里插入图片描述

Actions方法二
使用 wearerequired/git-mirror-action@v1
在项目根目录新建.github/workflows/sync-gitee.yml脚本

name: Sync to Gitee

on:
  push:
    branches: [master, gh-pages]

  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Sync to Gitee
        uses: wearerequired/git-mirror-action@v1
        env:
          # 在 Settings->Secrets 配置 GITEE_PRIVATE_KEY
          SSH_PRIVATE_KEY: ${{ secrets.GITEE_PRIVATE_KEY }}
        with:
          # GitHub 源仓库地址
          source-repo: git@github.com:ytking/monorepo-pnpm.git
          # Gitee 目标仓库地址
          destination-repo: git@gitee.com:ytanck/monorepo-pnpm.git
          

GITEE_PRIVATE_KEY就是SSH私钥,如何获取shh请自行百度。另外方法二需要配置公钥,方法如下:复制id_rsa.pub
在这里插入图片描述
在这里插入图片描述
配置完成后,但你再push master分支时就会触发工作流的Action
在这里插入图片描述
此时就会发现Gitee也同步更新了
在这里插入图片描述
注:方法一如果不指定仓库,会自动同步所有仓库,方法二是针对某一仓库去同步,前提要在Gitee里提前创建好了指定名字的空仓库。

### 回答1: 要同时配置gitgithubgitee,您需要按照以下步骤操作: 1. 在githubgitee上创建账户并创建仓库。 2. 在本地计算机上安装git。 3. 打开终端或命令行窗口,输入以下命令来配置git: git config --global user.name "Your Name" git config --global user.email "youremail@example.com" 这将设置您的用户名电子邮件地址,以便在提交代码时进行身份验证。 4. 生成SSH密钥并将其添加到您的githubgitee账户中。在终端或命令行窗口中输入以下命令: ssh-keygen -t rsa -C "youremail@example.com" 然后按照提示操作,将生成的公钥添加到您的githubgitee账户中。 5. 在本地计算机上创建一个新的git仓库,并将其与githubgitee仓库关联。在终端或命令行窗口中输入以下命令: git init git remote add origin git@github.com:yourusername/yourrepository.git git remote set-url --add origin git@gitee.com:yourusername/yourrepository.git 这将创建一个新的git仓库,并将其与您的githubgitee仓库关联。 6. 将您的代码添加到git仓库中,并将其推送到githubgitee仓库中。在终端或命令行窗口中输入以下命令: git add . git commit -m "Initial commit" git push -u origin master 这将将您的代码添加到git仓库中,并将其推送到您的githubgitee仓库中。 现在,您已经成功地配置了gitgithubgitee,并可以开始使用它们来管理您的代码了。 ### 回答2: Git是一款非常好用的版本管理系统,我们可以在其中配置多个远程仓库。这意味着我们可以在同一个本地Git仓库中,同时管理多个远程仓库,以实现不同平台之间的代码同步。 当我们使用Git时,首先需要在本地配置git的全局用户信息,如下所示: ``` $ git config --global user.name "Your Name" $ git config --global user.email "youremail@example.com" ``` 之后,我们需要在本地Git仓库中配置远程仓库的地址。假设我们要同时配置GitHubGitee,那么我们需要执行以下命令: ``` $ git remote add github https://github.com/yourusername/repo.git $ git remote add gitee https://gitee.com/yourusername/repo.git ``` 其中,"yourusername"是你在对应平台上的用户名,"repo.git"是你的仓库名称。执行以上命令后,Git会在本地仓库中添加两个远程仓库githubgitee。 接下来,我们可以使用push命令将本地代码同步到远程仓库。如果我们要将代码同步GitHubGitee,可以使用以下命令: ``` $ git push github master $ git push gitee master ``` 其中,"master"是分支名称,你也可以更改为其他分支名称。 除了push命令,我们还可以使用pull、fetch等命令从远程仓库获取代码或将远程仓库代码合并到本地仓库中。 需要注意的是,当同一个本地仓库同时配置多个远程仓库时,你需要决定将哪一个仓库设为默认仓库,以防止误操作。你可以使用以下命令来设置默认仓库: ``` $ git push -u github master ``` 以上命令中的"-u"选项表示将github设置为默认仓库,以后在执行push命令时,就可以不用指定远程仓库的名称了。 综上所述,Git同时配置GitHubGitee非常简单,只需要执行几个简单的命令即可。只要你掌握了以上知识,就可以轻松实现多平台代码同步。 ### 回答3: Git 是一款强大的版本控制工具,可以为项目的开发管理带来很多便利。在开发过程中,我们通常会将代码托管到代码托管平台上,比如 Github Gitee。为了更好地管理Git项目,我们需要配置 Git,以便同时连接 Github Gitee 两个平台。 首先,我们需要在GithubGitee上分别创建账号并登录。然后,我们需要生成 SSH key 并将其添加到 Github Gitee 上,以便在上传代码时进行身份验证。我们可以通过以下命令来生成 SSH key : ``` ssh-keygen -t rsa -C "your_email@example.com" ``` 生成成功后,我们需要在 Github Gitee 上的个人设置页面中添加 SSH key。 接下来,我们需要在本地以 Git Bash 的形式打开 Git ,在控制台中输入如下命令,来配置 Github Gitee : ``` git config --global user.name "用户名" git config --global user.email "邮箱地址" ``` 具体的用户名邮箱地址需要根据自己的账号信息进行设置。这些信息会在用 Git 上传代码时作为身份信息,所以一定要输入正确的信息。 在 Github Gitee 的 repository 页面上,我们可以找到 Clone or download 按钮,在弹出的框中复制仓库的 SSH 地址。然后,我们可以使用如下命令克隆代码到本地: ``` git clone git@github.com:yourname/repository.git git clone git@gitee.com:yourname/repository.git ``` 其中,yourname repository 分别是 Github Gitee 账号中相应的用户仓库名。 当我们需要 Push 代码时,需要指定远程仓库的名字。我们可以使用如下命令添加远程仓库: ``` git remote add gitee git@gitee.com:yourname/repository.git git remote add github git@github.com:yourname/repository.git ``` 其中,gitee github 分别是远程仓库的名字。我们可以使用如下命令将代码 Push 到对应的平台上: ``` git push gitee master git push github master ``` 以上就是同时配置 Github Gitee 的全部过程。在开发过程中,我们应当及时 Pull 远程仓库代码,避免产生代码冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C+ 安口木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值