我有 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- 修改文件
图2- 提交
图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的一个远程库 可以对应多个地址,即我能让远程库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- 提交
图4- 结果
可以看到使用eclipse 此时提交 提交到 2个仓库, 这就是我想要的
完美
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~~
- 纸上得来终觉浅,绝知此事要躬行
相关推荐
- **推送更改**:通过`git push origin master`命令将本地提交推送到远程仓库的相应分支。 - **拉取更改**: - 使用`git fetch`命令获取远程仓库的最新提交。 - 使用`git diff master origin/master`比较本地与...
综上所述,【oschina_git_java 开源项目】旨在帮助开发者掌握Git和Java的结合使用,提供了一个开源的环境来学习这两个工具的集成应用。通过参与这样的项目,开发者可以提升自己的版本控制能力和Java编程技能,同时...
- 远程仓库托管服务:GitHub、OSChina等。 - 本地Git服务器搭建方法。 - **课程目标** - 熟练掌握30个常用的Git命令。 - 理解Git的内部原理。 - 熟悉企业版本控制流程。 - 能够使用Git跟踪开源项目、与他人...
开发者可以通过这两个平台创建项目,链接到他们的Git仓库,邀请他人协作,或参与其他开源项目。 安装Git客户端的过程如下: 1. 访问Git官方网站(https://git-scm.com/)或开源中国、GitHub提供的下载页面,根据...
这意味着开发人员可以在本地提交更改,然后选择性地将这些更改推送到其他仓库或从其他仓库拉取更改。 #### Git基本概念 - **Git**是一种免费开源的分布式版本控制系统。 - 特点: - 高效快速,易于使用。 - 支持...
Git 的核心优势在于它能够高效地处理从小型到非常大型的项目版本管理问题。 #### 二、Git 的安装 - **Windows 环境**: - 访问 [https://git-for-windows.github.io/](https://git-for-windows.github.io/) 下载 ...
1. **初始化仓库**:在本地创建一个新目录作为项目存放位置,并通过`git init`命令将其初始化为Git仓库。 ```shell mkdir test cd test git init ``` 2. **添加文件**:将项目文件添加到Git仓库中,以便后续...
此命令会将远程仓库的所有内容复制到本地的一个新目录中。 6. **`git pull testpro master`** - 下载远程仓库中的最新更改并合并到当前分支。这里`testpro`指的是远程仓库的名字,`master`指代分支名称。 7. *...
- 使用`Push`选项将更改推送到远程仓库。 8. **GitHub使用流程:** - 登录GitHub账户。 - 创建新的仓库。 - 设置仓库基本信息。 - 在仓库设置中添加SSH密钥。 - 使用命令行工具或IDEA进行仓库克隆、提交等...
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 ...
- **远程仓库操作**: 与GitHub这样的在线代码托管平台配合使用时,可以使用`git clone`克隆远程仓库,`git push`推送本地更改到远程仓库,`git pull`拉取远程更改到本地仓库。 - **冲突解决**: 当多人协作时,可能会...
**Git快餐:Windows上的Git安装与配置** Git是一款分布式版本控制系统,被广泛应用于软件开发,尤其是在Android开发中。...通过熟悉这些工具和设置,你将能够更高效地管理和协作你的Android项目。
本文来自csdn,本文主要介绍一下Git在实际项目开发中的使用流程,包括克隆、暂...这里我是在OSChina的码云上创建了一个项目,命名为TestGit:这里需要强调的是,如果我们让我们的本地仓库连接远程仓库,就必须有一个SSH
- **简介**:两个流行的全文搜索引擎。 - **链接**:[http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/) - **核心特性**: - 全文检索 - ...
6. **版本控制与协作**:项目源码的管理很可能使用了Git进行版本控制,通过GitHub或GitLab等平台进行代码托管,以便团队成员协作开发和提交代码。 7. **持续集成与部署**:为了确保代码质量,项目可能使用了Jenkins...
注意仓库里不能有空文件夹,不能有多个.git文件): 1.注意推之前先拉取 git init 初始化下本地仓库 git remote add origin 仓库地址 关联远程库 git pull origin master 拉取分支名 git add 文件名 提交到暂存区 ...
总的来说,这个开源中国的Git push提醒工具利用了Node.js的灵活性和强大的生态系统,结合GitHub的Webhooks功能,实现了对Git仓库实时更新的监控和通知。对于开发者来说,这不仅提高了工作效率,也强化了团队间的沟通...
git原创培训教程,使用ppt的形式,参考了廖雪峰学习教程,主要分为三大类:git简介、git实战、git生态圈。git简介主要介绍svn和git的区别,git实战主要分为四个大块...git生态圈主要介绍oschina和github两大主流网站
:male_sign_selector: 由制造English |安装产品特点Git文件树(GitHub && GitLab && Gitee && Gitea) 档案搜寻显示GitHub存储库大小和文件下载支持GitHub通知GitHub暗模式,也适用于gist 程式码片段浏览文件的历史...