注:本文出自博主 Chloneda个人博客 | 博客园 | Github | Gitee | 知乎

本文源链接https://www.cnblogs.com/chloneda/p/git-to-github-gitee.html

我们有时候开发代码需要把代码同步到多个远程库中,如何操作才能做到呢?

我们知道,git是分布式版本控制系统,同步到多个远程库时,需要用不同的名称来标识不同的远程库,而git给远程库起的默认名称是origin。所以我们需要修改、配置名称,以关联不同远程库。有两种方式!

为了方便举例,我以GitHub和Gitee(码云)作为示例!

同步方式

命令方式同步

先删除已关联的名为origin的远程库:

git remote rm origin

然后,先关联GitHub的远程库:

git remote add github git@github.com:chloneda/demo.git

接着,再关联码云的远程库:

git remote add gitee git@gitee.com:chloneda/demo.git

配置方式同步

修改.git文件夹内的config文件:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@github.com:chloneda/demo.git
fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
remote = origin
merge = refs/heads/master

将上述文件内容[remote "origin"]内容复制,修改origin名称,内容如下:

[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "github"]
url = git@github.com:chloneda/demo.git
fetch = +refs/heads/*:refs/remotes/github/*
[remote "gitee"]
url = git@gitee.com:chloneda/demo.git
fetch = +refs/heads/*:refs/remotes/gitee/*
[branch "master"]
remote = origin
merge = refs/heads/master

查看远程库

通过以上两种方式的任一种方式配置完成后,我们用git remote -v查看远程库信息:

gitee   git@gitee.com:chloneda/demo.git (fetch)
gitee git@gitee.com:chloneda/demo.git (push)
github git@github.com:chloneda/demo.git (fetch)
github git@github.com:chloneda/demo.git (push)

可以看到两个远程库,说明配置生效了。

上传代码

git add .
git commit -m "update"

提交到github

git push github master

提交到码云

git push gitee master

更新代码

# 从github拉取更新
git pull github # 从gitee拉取更新
git pull gitee

踩到的坑

上述过程中,更新或提交代码时可能会遇到fatal:refusing to merge unrelated histories (拒绝合并无关的历史) 错误,解决办法:

首先将远程仓库和本地仓库关联起来。

git branch --set-upstream-to=origin/remote_branch  your_branch

其中,origin/remote_branch是你本地分支对应的远程分支,your_branch是你当前的本地分支。

然后使用git pull整合远程仓库和本地仓库。

git pull --allow-unrelated-histories    (忽略版本不同造成的影响)

重新更新、提交即可。

注: 如遇到 Git没有共同祖先的两个分支合并 的情形请自行查询!


git同步代码至github和gitee(码云)的更多相关文章

  1. Git使用的一些问题:.gitignore规则不生效、git同步代码至github和gitee

    Git忽略规则及.gitignore规则不生效的解决办法 .gitignore 的基本使用 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件 ...

  2. 使用Git将代码上传至Gitee码云中

    Git是一个开源的分布式版本控制系统,可以高效处理任何或小或大的项目 Git与常用的版本控制工具CVS.Subversion 不同,Git采用了分布式版本库的方式,不必服务器端软件支持 Git与SVN ...

  3. 配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境

    首先确认已安装Git,可以通过 git –version 命令可以查看当前安装的版本. Mac OSX 中都已经安装了Git.但是,Git的版本未必是最新的. 可以通过命令 git clone htt ...

  4. layui 的 GitHub 及 Gitee (码云) 仓库

    GitHub: https://github.com/sentsin/layui/ Gitee:https://gitee.com/sentsin/layui

  5. Git同步更新操作GitHub和码云仓库上面的代码

    一.前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃更 ...

  6. git,github,gitlab,码云的区别

    git 是版本控制工具. github https://github.com/和gitlab https://about.gitlab.com/都是基于git仓库的web开发流程代码托管平台.两者的区 ...

  7. git提交代码到github

    前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...

  8. pycharm 使用Git提交代码到Github

    pycharm 使用Git提交代码到Github pytharm 创建django项目,提交到github总是失败,在github创建项目拉下来后项目层级会多一层,为此查了一些资料,亲测如下方式可行. ...

  9. Python集成开发环境Pycharm+Git+Gitee(码云)

    ********************************************************************* 本文主要介绍集成开发环境的配置过程,方便多人协作办公.代码版 ...

随机推荐

  1. JavaScript所有函数和内置方法

    Number isFiniter() 检测传入的的数值是否在无穷大和无穷小之间(有限数字或者是可转换成有限数字)返回true,否则返回false.NaN返回false. isFinite(Number ...

  2. Goland2019.3.2永久破解

    2019.11.28 jetbrains公司发布了Go的最强编辑器GoLand 2019.3.本次更新软件消耗更少的CPU和更快的性能,增强了对Go Modules的支持,添加了一组新的快速修复程序, ...

  3. Go语言实现:【剑指offer】二维数组中的查找

    该题目来源于牛客网<剑指offer>专题. 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一 ...

  4. Linux bash管道符“|”使用介绍与例子

    https://blog.csdn.net/wangqianyilynn/article/details/75576815

  5. 在Windows系统中安装Redis和php_redis扩展

    安装Redis (1)下载redis压缩包,git下载地址https://github.com/MSOpenTech/redis/releases 解压文件夹,在文件夹中运行cmd命令: 输入:   ...

  6. printf函数中*修饰符的作用,如:%*d

    在printf函数中,我们可以用数字修饰来控制打印的字段宽度和精度,如下(为强调视觉效果,均填充0): #include <stdio.h> int main() { ; float f= ...

  7. c#---Socean.Rpc之EasyProxy

    目录 1.高性能RPC框架:Socean.RPC 2.Socean.RPC框架实测 3.Socean.Rpc之EasyProxy 简介 这几天给Socean.RPC加上了动态代理,简称EasyProx ...

  8. Python3标准库:functools管理函数的工具

    1. functools管理函数的工具 functools模块提供了一些工具来调整或扩展函数和其他callable对象,从而不必完全重写. 1.1 修饰符 functools模块提供的主要工具就是pa ...

  9. OpenResty 在马蜂窝广告监测中的应用

    马蜂窝技术原创内容,更多干货请订阅公众号:mfwtech 广告是互联网变现的重要手段之一. 以马蜂窝旅游 App 为例,当用户打开我们的应用时,有可能会在首屏或是信息流.商品列表中看到推送的广告.如果 ...

  10. 内网学习之Kerberos协议

    学习了解kerberos协议,有助于我们后期理解黄金票据和白银票据的原理 kerberos协议 kerberos是一种由麻省理工大学提出的一种网络身份验证协议.旨在通过使用密钥加密技术为客户端/服务器 ...