`

将项目提交到两个git仓库(github和oschina)

    博客分类:
  • git
git 
阅读更多

我有 feilong-core 项目,原先只托管源码在 github ,应红薯老大的再三邀请(不要脸的害羞中~~), 最近开始也同步托管在 码云

1. 问题

那问题来了,当我项目文件有修改的时候, 有没有办法 一次提交到两个仓库 ?

  • 命令行如何实现?
  • 如果是eclipse 里面提交又该怎么配置?

2. 方案一: git remote add 方案

目标很明确, 并且也有 朋友 @路小磊 的指点 Git push到多个远程库

顺着思路,我也来尝试, 并且尝试的时候就使用 fork 的项目做测试(玩坏了也不心疼~~)

2.1 命令行

2.1.1 查看

听说可以使用 git remote 命令(你也可以移步见帮助文档)

我们先使用 git remote 看看现在项目git 远程主机情况

java-sdk git:(master)git remote
origin

再使用 git remote -v 看看

➜  java-sdk git:(master) ✗ git remote -v
origin    https://github.com/venusdrogon/java-sdk.git (fetch)
origin    https://github.com/venusdrogon/java-sdk.git (push)

表示,当前只有一台远程主机,叫做origin,以及它的网址

2.1.2 添加

那么,我使用 git remote add 添加一个远程主机

git remote add oschina https://git.oschina.net/ifeilong/java-sdk.git

再来看看 远程主机信息

➜  java-sdk git:(master) ✗ git remote -v
origin    https://github.com/venusdrogon/java-sdk.git (fetch)
origin    https://github.com/venusdrogon/java-sdk.git (push)
oschina    https://git.oschina.net/ifeilong/java-sdk.git (fetch)
oschina    https://git.oschina.net/ifeilong/java-sdk.git (push)

可以看到已经加进去了

2.1.3 提交

那么怎么提交呢?

随便修改个文件,并 commit

➜  java-sdk git:(master) ✗ git add .
➜  java-sdk git:(master) ✗ git commit -m 'test'
[master c1b96a0] test
 1 file changed, 2 insertions(+)

2.1.4 推送到远程主机

使用 git push 推送到 github 仓库

➜  java-sdk git:(master) git push -u origin master
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (10/10), 964 bytes | 0 bytes/s, done.
Total 10 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), completed with 1 local object.
To https://github.com/venusdrogon/java-sdk.git
   ffa5dc5..c1b96a0  master -> master
Branch master set up to track remote branch master from origin.

再推送到 oschina 仓库

➜  java-sdk git:(master) git push -u oschina master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 275 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://git.oschina.net/ifeilong/java-sdk.git
   353a92d..c1b96a0  master -> master
Branch master set up to track remote branch master from oschina.

校验下 两个仓库里面的数据, 都是最新的

大功告成,亲个小嘴儿~~

2.2 eclipse 操作

上面脚本要git push 两次才能完成push到两个库,可行,就是麻烦一点

那么eclipse 此时直接使用 egit 插件提交代码会出现什么情况?

图1- 修改文件

1

图2- 提交

2

图3- 结果

3

可以看到使用eclipse 此时提交只提交到 最后的一个仓库, 不是我想要的效果

3. 方案二: git remote set-url 方案

一招不行,那就再换一招,参考 git 给远程库 添加多个url地址 ,使用 git remote set-url 方案

3.1 命令行

3.1.1 remote 移除 oschina

我们先把上面 加的 oschina 仓库去除,使用 git remote rm oschina

➜  java-sdk git:(master) git remote -v
origin    https://github.com/venusdrogon/java-sdk.git (fetch)
origin    https://github.com/venusdrogon/java-sdk.git (push)
oschina    https://git.oschina.net/ifeilong/java-sdk.git (fetch)
oschina    https://git.oschina.net/ifeilong/java-sdk.git (push)

➜  java-sdk git:(master) git remote rm oschina
warning: more than one branch.master.remote

➜  java-sdk git:(master) git remote -v
origin    https://github.com/venusdrogon/java-sdk.git (fetch)
origin    https://github.com/venusdrogon/java-sdk.git (push)

3.1.2 使用 git remote set-url 命令

(你也可以移步见帮助文档)

这时我来git 给远程库 添加多个url地址

试试 git的一个远程库 可以对应多个地址,即我能让远程库origin拥有多个url地址

➜  java-sdk git:(master) git remote set-url --add origin https://git.oschina.net/ifeilong/java-sdk.git

➜  java-sdk git:(master) git remote -v
origin    https://github.com/venusdrogon/java-sdk.git (fetch)
origin    https://github.com/venusdrogon/java-sdk.git (push)
origin    https://git.oschina.net/ifeilong/java-sdk.git (push)

可以看到 origin 有两个 push 远程路径

3.1.3 push

那么随便修改下文件,并提交看看效果

使用 git push origin master

➜  java-sdk git:(master) git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/venusdrogon/java-sdk.git
   12aa87a..493354d  master -> master

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 278 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://git.oschina.net/ifeilong/java-sdk.git
   12aa87a..493354d  master -> master

可以从log 里面看到 提交到了 两个仓库, 并从仓库页面校验是ok的

大功又告成,再亲个小嘴儿~~

3.2 eclipse 操作

那么eclipse 此时直接使用 egit 插件提交代码会出现什么情况?

图2- 提交

2

图4- 结果

4

可以看到使用eclipse 此时提交 提交到 2个仓库, 这就是我想要的

完美

timg

4. 总结

这么一来,我的feilong-core 项目,也就一行 git 命令的事情

➜  java-sdk git:(master) git remote set-url --add origin https://git.oschina.net/ifeilong/feilong-core.git

5. 感悟

  • just do it~~
  • 纸上得来终觉浅,绝知此事要躬行

6. 参考

1
0
分享到:
评论

相关推荐

    VSS迁移到Git的Debug版

    Vss2Git is a Windows GUI application that exports all or parts of an existing Microsoft Visual SourceSafe 6.0 (VSS) (Wikipedia) repository to a new Git repository. It attempts to construct meaningful ...

    【Git】之Git使用案例

    本文来自csdn,本文主要介绍一下Git在实际项目开发中的使用流程,包括克隆、暂...这里我是在OSChina的码云上创建了一个项目,命名为TestGit:这里需要强调的是,如果我们让我们的本地仓库连接远程仓库,就必须有一个SSH

    git仓库管理常用快捷键文档

    注意仓库里不能有空文件夹,不能有多个.git文件): 1.注意推之前先拉取 git init 初始化下本地仓库 git remote add origin 仓库地址 关联远程库 git pull origin master 拉取分支名 git add 文件名 提交到暂存区 ...

    git使用培训教程,包含各种常用git命令

    git原创培训教程,使用ppt的形式,参考了廖雪峰学习教程,主要分为三大类:git简介、git实战、git生态圈。git简介主要介绍svn和git的区别,git实战主要分为四个大块...git生态圈主要介绍oschina和github两大主流网站

    git-master:用于git文件树的Git Master扩展,支持GitHub,GitLab,Gitee,Gitea

    :male_sign_selector: 由制造English |安装产品特点Git文件树(GitHub && GitLab && Gitee && Gitea) 档案搜寻显示GitHub存储库大小和文件下载支持GitHub通知GitHub暗模式,也适用于gist 程式码片段浏览文件的历史...

    lodsve-frameworklodsve-framework.zip

    lodsve-framework ... Blog: Blog OSChina License The Lodsve Framework is released under version 2.0 of the Apache License. Donate   标签:lodsve

    开源的项目管理和代码托管平台 GitLab.zip

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的...

    开源项目源码

    内容包含五个应用的开源源码开源中国Android客户端 http://git.oschina.net/oschina/android-app 2、 GitHub客户端 https://github.com/github/android 3、 看雪论坛:...

    oschinaApp:oschina的官方app,代码寄存在oschina的git上,我转移到github上并做以修改,用来学习~

    从2.3版本开始,项目已经完成了gradle化,完全迁移到了android studio,如果想使用eclipse进行该项目的学习,可以clone ,不过需要注意的是,eclipse需要按照开发环境中提到的:进行butterknife注解设置 ##开发环境 ...

    Wiki系统,基于Git、Markdown等标记语言,完美支持中文gitit.zip

    Gitit:一个基于 Markdown(及其他标记语言) Git 版本管理系统的 Wiki,使用 Haskell 语言编写。  官网:http://gitit.net  Github:http://github.com/jgm/gitit 中文...

    Android应用WIFI项目

    本项目是一个基于wifi的内网...开源项目最新版本可以关注项目主页:http://git.oschina.net/hillfly/WifiChat 或者 https://github.com/hillfly/WifiChat 。源码丰富的公共类和注释。项目较大,分析需要一定安卓基础。

    分布式逻辑管理平台xxl-glue.zip

    源码地址 (将会在两个git仓库同步发布最新代码) github地址 git.oschina地址 博客地址 oschina地址 cnblog地址 技术交流群 (仅作技术交流) ...

    破解smargit(最新版也可用)

    在我们做项目的过程中,我们会用到SmartGit这个软件来将本地的MAVEN项目push到国内的码云(https://git.oschina.net)或者是国外的github网站进行项目的管理,这个时候需要用到Smartgit。但是SmartGit是收费的...

    日常项目和 OA 管理系统 OPMS.zip

    在实际的项目应用中,有许多功能点都用不到或者很少用,可能它的系统是面向不同行业项目管理吧。 结合实际的项目要求和人事的日常工作经验要求,于是OPMS管理系统诞生了! OPMS官网: ...

    git安装与使用介绍.docx

    gitee是开源中国(https://www.oschina.net/)开发的一款基于git的代码托管平台,能够用gitee实现代码托管、项目管理、协作开发,目前是国内最大的代码系统,gitee和github的作用和性质是类似的,描述安装开发的基本...

    exwechat 微信公众号开发库`

    安装方法 composer require youwen/exwechat git 仓库地址: http://git.oschina.net/youwen21/exwechat https://github.com/youwen21/exwechat 支持微信消息 、 菜单、 多媒体(图片|音频|视频)、OAuth、JSSDK...

    Java开源的分布式任务调度平台 xxl-job.zip

    源码地址 (将会在两个git仓库同步发布最新代码)github地址git.osc地址 中央仓库地址 (将会把上个版本的公共依赖,推送到中央仓库)<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->  ...

    基于JFinal的开源博客系统JFinal_Blog2.0版本

    JFinal_Blog是基于JFinal1.5开源系统搭建的博客系统,以91zcm.com 网站作为模板和演示demo,目前已经加入了OSC开源项目和Github。 一、V2.0 版本新增功能点及bug修复情况: 1、添加百度Ping服务; 2、添加百度...

    jfinalpluginsdreampie-jfinal.zip

    新增前端:requireJs+backbone+coffeescript+lesscss集成,自动编译coffeescript和lesscss并监听文件改动,因为时间原因主要以实现功能为主,欢迎大家指正和优化 框架地址:...

    基于JFinal的开源博客系统JFinal_Blog2.0版本.zip

    JFinal_Blog是基于JFinal1.5开源系统搭建的博客系统,以91zcm.com 网站作为模板和演示demo,目前已经加入了OSC开源项目和Github。 一、V2.0 版本新增功能点及bug修复情况: 1、添加百度Ping服务; 2、添加百度...

Global site tag (gtag.js) - Google Analytics