十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Git与TortoiseGit使用教程:第三章 Gitee仓库同步到GitHub

Git与TortoiseGit使用教程:第三章 Gitee仓库同步到GitHub Git与TortoiseGit使用教程第一章 Git的安装及SSH公钥配置第二章 Git常用命令及TortoiseGit使用教程第三章 Gitee仓库同步到GitHub文章目录Git与TortoiseGit使用教程[TOC](文章目录)前言一、镜像管理是做什么的二、准备工作1.绑定 GitHub 账号2.申请 GitHub 私人令牌Personal Access Token三、添加 Push 方向镜像Gitee → GitHub四、添加 Pull 方向镜像GitHub → Gitee可选五、双向镜像与注意事项六、手动更新与强制停止七、常见问题总结前言上一章把Git命令和TortoiseGit的用法都过了一遍日常提交、拉取、解决冲突这趟活儿已经能跑了。但有一个很现实的需求很多人一手Gitee、一手GitHub——Gitee国内访问快、适合日常推拉GitHub国际影响力大、开源项目基本都在这。手动在两边各推一遍太累所以这一章讲如何用Gitee自带的仓库镜像管理功能把Gitee的仓库自动同步到GitHub顺便也把反向GitHub→Gitee和双向同步说清楚。本文操作全在网页端完成不需要命令行跟着点就行。环境依然是Windows账号以Gitee GitHub为例。一、镜像管理是做什么的Gitee的仓库镜像管理功能可以配置不同平台之间仓库的分支、标签、提交记录自动同步。它支持三种镜像方向方向作用触发方式Push把Gitee仓库镜像到GitHubGitee → GitHub提交到Gitee时自动同步或手动点更新Pull把GitHub仓库镜像到GiteeGitHub → Gitee可选自动镜像靠webhook或手动镜像双向对同一个GitHub仓库同时配置Push和Pull任一边提交都同步到另一边有丢代码风险本文主角是Push 方向你平时只往Gitee推代码Gitee自动帮你把仓库同步到GitHub相当于白捡一个GitHub备份还顺带解决了国内访问GitHub慢的问题。会同步的内容包括分支Branches、标签Tags、提交记录Commits。二、准备工作在配置镜像之前有两件前置条件必须先满足。1.绑定 GitHub 账号进入你的Gitee仓库点「管理」→ 找到「仓库镜像管理」→ 点「添加镜像」。如果还没绑定 GitHub 账号页面会弹窗提示你去绑定。按提示用 GitHub 账号授权登录即可绑定一次以后所有仓库都能用。2.申请 GitHub 私人令牌Personal Access TokenGitee推送代码到GitHub需要GitHub给它一个通行证这就是GitHub私人令牌。申请步骤登录与Gitee绑定的GitHub账号点右上角头像 →Settings→ 左侧Developer settings→Personal access tokens点Generate new token新版叫Tokens (classic)选 classic 更稳妥Note随便填例如Gitee_MirrorSelect scopes权限范围勾选repo必选不勾Gitee就没法读写你的仓库镜像会直接不可用admin:repo_hook可选只在你需要Gitee自动从GitHub同步Pull方向自动镜像时才需要用于自动生成webhook拉到底点Generate token复制生成的令牌并妥善保管。这串字符只显示这一次关掉页面就再也看不到了。⚠️令牌等同于你的GitHub密码不要截图外传、不要提交到仓库。如果泄露了回GitHub把这个token删掉重发一个即可。三、添加 Push 方向镜像Gitee → GitHub这是本文的核心操作配好之后基本就不用管了。进入需要用镜像的仓库 → 「管理」→「仓库镜像管理」→「添加镜像」镜像方向选Push镜像仓库下拉列表里选你要同步到的那个GitHub仓库必须是已绑定账号下的仓库个人令牌里粘贴上一步申请的GitHub私人令牌需含repo权限点「添加」保存。配置完成后触发同步有两种方式自动你往Gitee仓库提交代码Gitee会自动向GitHub同步手动随时在「仓库镜像管理」页面点「更新」按钮强制触发一次。镜像触发有频率限制同一个镜像最短更新间隔是 5 分钟频繁提交不会每次都立刻同步属正常现象。Push方向配好后建议始终把你最新的代码提交到Gitee剩下的交给它自动同步到GitHub即可。四、添加 Pull 方向镜像GitHub → Gitee可选如果你反过来主要在GitHub上开发想让Gitee也保持同步就配Pull方向。进入仓库 →「管理」→「仓库镜像管理」→「添加镜像」镜像方向选Pull镜像仓库下拉选对应的GitHub仓库个人令牌填GitHub私人令牌根据需求决定是否勾选「自动从 GitHub 同步仓库」勾选 → Gitee会自动生成webhook实现自动同步但需要你的令牌包含admin:repo_hook权限否则添加失败不勾 → 只手动点「更新」才同步点「添加」。如果勾选自动同步后添加失败大概率是令牌缺admin:repo_hook权限。两个办法要么重新申请一个带该权限的令牌要么取消勾选「自动同步」先手动同步手动方式不需要这个权限再按第七节手动配webhook。Pull方向配好后推送代码到GitHub镜像仓库会触发同步或手动点「更新」。五、双向镜像与注意事项对同一个GitHub仓库同时配置Push和Pull就是双向镜像——任一边提交都会同步到另一边。⚠️双向镜像目前存在代码丢失风险请谨慎使用官方建议不要在同一时间往Gitee和GitHub镜像仓库提交代码尽量保证两边的提交间隔大于 30 分钟。使用仓库镜像时还有几条硬规矩必须心里有数只支持镜像已绑定 GitHub 账号授权访问的仓库更新请求一旦发出除非连续失败被强制停止否则无法中断操作前确认清楚暂不支持同步 Git-LFS大文件同步超过30 分钟视为超时大型仓库不建议用镜像方式同步镜像操作会覆盖目标仓库的分支、标签和提交记录重要仓库注意备份。六、手动更新与强制停止手动更新无论何时在「仓库镜像管理」页面点对应镜像的「更新」按钮就能发起一次同步。更新请求发出后无法手动停止且每个镜像最短间隔 5 分钟。强制停止如果连续5 次镜像都失败系统会强制停止该镜像并在镜像列表里显示最后一次失败的错误信息。强制停止后最快5 分钟后才能再次发起更新。七、常见问题1如何申请 / 重新申请 GitHub 私人令牌见本文第二节第2小节。记住repo必选要自动从GitHub同步Pull自动镜像就再加admin:repo_hook。2为什么推送到 GitHub 会失败如果GitHub账号开启了Keep my email addresses private邮箱保密且你在Gitee上用这个邮箱push代码Gitee的推送会受该功能限制而失败。解决在GitHub邮箱设置里关闭保密或换一个未开启保密的邮箱作为提交邮箱。3Pull方向自动同步添加失败 / 误删了webhook如何手动配置Webhook用于实现Pull方向镜像的自动同步。分三步申请Gitee私人令牌需project权限Gitee头像 → 设置 → 私人令牌 → 生成描述随便填如Gitee_Mirror勾选project权限复制保存配置webhook进入GitHub镜像仓库 →Settings→Webhooks→Add webhook按格式填Payload URLhttps://gitee.com/api/v5/repos/:owner/:repo/remote_mirror/pull?access_token:personal access token:owner仓库归属你的GitHub用户名:repo仓库名称:personal access token上面申请的Gitee私人令牌Content type选application/json触发事件选Just the push event.确保Active勾选点Add webhook测试保存后GitHub会自动发测试请求看列表里webhook的图标判断是否正常正常为绿色对勾不正常请仔细核对Payload URL。4常见错误提示对照错误提示原因 / 解决办法未找到此仓库镜像仓库被删除或改了名字检查仓库是否存在无效的私人令牌令牌复制不完整或输错重新粘贴无权限的私人令牌令牌缺repo授权重新申请带repo的令牌仓库正在读写中请稍后重试Push或Pull镜像正在更新中等更新结束再操作总结要点回顾核心动作是添加 Push 方向镜像Gitee仓库「管理」→「仓库镜像管理」→「添加镜像」→ 方向选Push、选GitHub仓库、填GitHub令牌repo权限前置两步不能少先绑定GitHub账号再申请带repo权限的GitHub私人令牌只显示一次务必存好配好就自动同步提交到GiteeGitee 5 分钟内自动同步到GitHub不用手动推两遍反向GitHub→Gitee用 Pull 方向自动同步需令牌带admin:repo_hook权限双向镜像慎开有丢代码风险别两边同时提交。有了前三章从安装、命令、图形界面到跨平台同步Git这套工具链就算完整了。建议日常开发只往Gitee推让镜像帮你维护GitHub那份省心又多一份备份。参考文章Gitee 帮助中心仓库镜像管理Gitee-Github 双向同步TortoiseGit-使用教程图文详细版Git教程 SSH keys配置Git详细安装教程gitee上传代码生成SSH公钥
返回列表