如何将一个项目同时提交到GitHub和Gitee(码云)上

简介: 如何将一个项目同时提交到GitHub和Gitee(码云)上

如果你是GitHub的开源作者,是否因为GitHub访问慢或图片不显示而苦恼?你是否想让你的代码让更多人看到?那么,你可以将一套开源代码同时提交到多个开源平台。


当然,如果你已经在这么做了,但是只是手动的复制、分别上传,那么更本篇文章更值得你一看。


前言

GitHub几乎是每个程序员必逛的地方,但访问GitHub有一个明显的问题,就是网速比较慢,现在GitHub上很多图片信息还没办法正常显示。


Gitee(码云)这几年在国内发展势头迅猛,下面我们就以一套代码同时提交到GitHub和Gitee为示例来,来讲解如何配置Git达到同时上传代码到多个平台。


GitHub上创建一个仓库

在GitHub上创建一个仓库:


image.png当然,如果对应的仓库已经存在,则可跳过此步骤。笔者在GitHub上已经存在一个仓库了,上图只是示例。

Gitee上创建对应仓库

在Gitee上创建一个对应的仓库,最好同名:image.png在创建时,除了填写必要信息之后,最下面一栏选择“导入已有仓库”,然后将GitHub上的仓库地址(Https形式)copy过来,直接粘贴在对应位置。Gitee会检测并给出提示。

点击创建,稍等片刻,发现仓库已经被完美同步过来了:image.png我的关于shiro的一个仓库地址:https://gitee.com/secbro/shiro 。访问会发现,不仅同步过来了,而且在GitHub上无法显示的图片瞬间显示出来了。


从此刻起,你的开源项目曝光率轻松增加了一倍,是不是很简单而又很有成就感。


手动更新同步

经过上面的步骤虽然已经完成了库的同步操作,但你是否发现,当你提交代码到GitHub上时,Gitee上并没有把修改的代码同步过来。


此时可以有两种方案,先说第一种,手动同步。当GitHub上的代码更新了,登录Gitee在项目名称处点击下图中的图标,即可强制同步更新:


image.png这种操作适合非实时同步,可能隔一段时间自己登录账号进行一次同步。


Git提交同步

第二种方式是Git同步提交多个仓库,这里以Mac操作系统为例,其他操作系统搭建对应找一下相关的命令和操作。


首先,将GitHub的仓库clone到本地,比如执行以下命令:


git clone git@github.com:secbr/shiro.git

1

然后进入本地项目的根目录,在根目录下会有一个.git的隐藏目录。


192:shiro zzs$ ls .git

COMMIT_EDITMSG ORIG_HEAD description info  packed-refs

FETCH_HEAD branches hooks  logs  refs

HEAD  config  index  objects

1

2

3

4

找到.git下面的config文件,通过vi命令进行修改,笔者起初文件内容如下:


[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = git@github.com:secbr/shiro.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
        remote = origin
        merge = refs/heads/main

修改之后变为:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        // github的仓库地址
        url = git@github.com:secbr/shiro.git
        // gitee的仓库地址
        url = git@gitee.com:secbro/shiro.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
        remote = origin
        merge = refs/heads/main

也就是说,在原来的github仓库地址下面再添加一个url配置,指向gitee的地址。


当然,这里有一个前提条件,Gitee和GitHub的账号的公私钥为同一套。


此时再修改本地代码,进行提交,你会发现GitHub和Gitee上的代码同时被修改了。是不是很cool?


小结

很多时候,我们都在用“假勤奋”来麻痹自己,看起来很努力的样子。比如当遇到上述同步代码的问题,如果不深入研究一下,只是通过手动的形式来搬代码,虽然看起来很勤奋,但是比不上一行配置,一行命令。


当然,上述实例只是在GitHub和Gitee两个仓库同步代码,除此之外还可以在GitLab、Bitbucket或是自己搭建的Git服务器上用同样的方式同步代码。


不过,建议根据具体情况而定,最好不要超过两个,不然提交仓库的时候可能会因为网络原因导致耗时比较长。



目录
相关文章
IDEA 出现问题:IDEA Shift+shift 万能搜索你也有失效的时候
IDEA 出现问题:IDEA Shift+shift 万能搜索你也有失效的时候
1225 0
IDEA 出现问题:IDEA Shift+shift 万能搜索你也有失效的时候
|
存储 监控 安全
一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)
这篇文章是Java面试第三天的笔记,讨论了线程安全、Thread与Runnable的区别、守护线程、ThreadLocal原理及内存泄漏问题、并发并行串行的概念、并发三大特性、线程池的使用原因和解释、线程池处理流程,以及线程池中阻塞队列的作用和设计考虑。
|
存储 开发工具 数据库
Git命令大全|必会常用Git命令解析
Git是目前最流行的版本控制工具,熟练掌握Git命令对于开发者来说非常重要。本文收集了常用的Git命令,包括初始化仓库、克隆远程仓库、提交修改等操作,详解每个命令的作用和用法,让您轻松学会使用Git进行版本控制。
986 1
|
JSON 前端开发 JavaScript
革新Admin.NET框架:前端体验飞跃与代码生成自动化的双重革命,引领高效开发新时代!
【8月更文挑战第3天】Admin.NET是一款专为现代企业应用打造的高效框架,凭借强大的后台管理和灵活的扩展性深受开发者喜爱。本文探讨如何优化其前端体验与开发效率。首先,通过采用Flexbox和CSS Grid等技术实现响应式布局重构,确保了不同设备上的一致体验。其次,引入Vue.js或React实现组件化开发,提高代码复用性和维护性。再者,利用Webpack等工具进行性能优化,提升页面加载速度。此外,开发了代码生成器以自动生成CRUD模块,极大提高了开发效率。这些改进使Admin.NET前端开发更高效、灵活且易于维护。
515 0
|
JavaScript Java 数据库
智能家居|基于SprinBoot+vue的智能家居系统(源码+数据库+文档)
智能家居|基于SprinBoot+vue的智能家居系统(源码+数据库+文档)
301 0
|
存储 负载均衡 监控
Redis分区指南:如何实现高可用与扩展性
本文由技术小伙伴小米讲解Redis分区容错中的数据分区。内容涉及Hash、一致性Hash、Codis的Hash槽和RedisCluster四种方法。Hash简单但不稳定,数据迁移和分区不均衡是其主要问题;一致性Hash通过最小化数据迁移实现负载均衡,但仍有局限;Codis的Hash槽提供灵活的负载均衡和在线迁移;RedisCluster是官方高可用、可扩展的解决方案。每种方案有优缺点,需根据实际需求选择。
763 0
Redis分区指南:如何实现高可用与扩展性
|
Oracle Java 关系型数据库
Java 开发者必备:JDK 版本详解与选择策略(含安装与验证)
Oracle Java SE 支持路线图显示,JDK 8(LTS)支持至2030年,非LTS版本如9-11每6个月发布且支持有限。JDK 11(LTS)支持至2032年,而JDK 17及以上版本现在提供免费商用许可。LTS版本提供长达8年的支持,每2年发布一次。Oracle JDK与OpenJDK有多个社区和公司构建版本,如Adoptium、Amazon Corretto和Azul Zulu,它们在许可证、商业支持和更新方面有所不同。个人选择JDK时,可考虑稳定性、LTS、第三方兼容性和提供商支持。
9558 0
|
搜索推荐 算法 安全
AIGC对未来高校教学的影响
【1月更文挑战第14天】AIGC对未来高校教学的影响
486 3
AIGC对未来高校教学的影响
|
存储 SQL 缓存
探秘MySQL底层架构:设计与实现流程一览
Mysql,作为一款优秀而广泛使用的数据库管理系统,对于众多Java工程师来说,几乎是日常开发中必不可少的一环。无论是存储海量数据,还是高效地检索和管理数据,Mysql都扮演着重要的角色。然而,除了使用Mysql进行日常开发之外,我们是否真正了解它的底层架构以及设计实现的流程呢?本篇博客将带您深入探索Mysql底层架构的设计与实现流程,帮助您更好地理解和应用这个强大的数据库系统。让我们一同揭开Mysql底层的神秘面纱,探寻其中的奥秘。
37165 14
探秘MySQL底层架构:设计与实现流程一览
|
关系型数据库 MySQL 数据库
BookStack 详解及 Docker-Compose 部署
BookStack 是一款用于创建文档和文档管理的开源平台。它提供了一个直观且功能丰富的界面,可用于组织和管理各种文档,包括文档编写、编辑和共享。
823 1
BookStack 详解及 Docker-Compose 部署