想要获取更多文章可以访问我的博客 - 代码无止境

这是一个普通的工作日,小代正在勤勤恳恳的写代码。这时陈BOSS走到小代身边,跟小代说:“我们的代码需要同时推送到Github和码云两个仓库,你研究一下怎么搞吧。” 乐于研究和学习的小代自然是毫不犹豫的答应了下来。

准备工作

好,我们先来看下完成这篇文章的学习需要准备哪些东西。自然是一个本地的git仓库。

mkdir git-test
cd git-test
git init
touch README.md

执行了这几行命令之后,我们还需要在Github和码云上分别新建两个远程仓库。到这里我们就有了一个和小代差不多的本地环境。下面我们就一起来看下小代是通过怎样的操作来实现陈BOSS的需求的。

小代的操作

首先小代思考的是如何在一个项目中添加两个远程仓库。经过一番搜索,小代知道了下面的命令可以给仓库添加远程仓库。

git remote add [shortname] [url]

PS:我们解释一下这行命令的两个参数,第一个参数其实就是我们后面推送到这个远程仓库的时候都使用这个名称来代替仓库地址,第二个参数就是远程仓库的地址了,这句命令应该很好理解。

然后小代就在本地仓库根目录执行了下面两行命令,为本地仓库添加了两个远程仓库。

git remote add gitee https://gitee.com/gancy/git-test.git
git remote add github https://github.com/ganchaoyang/git-test.git

然后我们修改README文件后,可以分别往两个仓库推送代码。

git add *
git commit -m "first commit"
git push -u github master
git push -u gitee master

通过两句git push命令我们确实可以向两个远程仓库推送代码,但是作为一个喜欢偷懒的程序员的小代同学绝不满足于此,于是他就想有没有一种方式可以一句命令就同时push到两个远程仓库。于是乎就有了下面的操作。小代修改了.git/config文件中的内容。原文件内容如下:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "gitee"]
url = https://gitee.com/gancy/git-test.git
fetch = +refs/heads/*:refs/remotes/gitee/*
[remote "github"]
url = https://github.com/ganchaoyang/git-test.git
fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
remote = gitee
merge = refs/heads/master

修改后的内容为:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://gitee.com/gancy/git-test.git
url = https://github.com/ganchaoyang/git-test.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master

只是将两个remote合并成了一个而已,然后再执行git push命令就会发现,会一次性向两个仓库push代码了。然后,小代同学就下班回家吃饭了。

结束语

这篇文章,主要是讲了如何同时向多个远程仓库推送代码。虽然平时使用场景不多,但是偶尔遇到了这样的需求还是很实用的。如果你喜欢我的文章,可以扫描下方二维码关注代码无止境公众号。

最新文章

  1. JS 的事件委托机制
  2. NPOI读取excel功能,兼容xls和xlsx
  3. H5+app前端后台ajax交互总结
  4. 对UICollectionView的学习
  5. Linux程序分析工具:ldd和nm
  6. mac下,利用homebrew安装PHP+Mysql+Nginx
  7. 20150410---GridView分页(备忘)
  8. ASP专栏——ASP生成静态文件(用于大量文章)
  9. 利用switch case 来运行咱们结婚吧
  10. hive函数总结-字符串函数
  11. Unity扩展让枚举视图中变成多选框
  12. JDK源码学习--String篇(四) 终结篇
  13. docker学习笔记18:Dockerfile 指令 VOLUME 介绍
  14. Microsoft Toolkit 2.5下载 – 一键激活Windows 8.1/2012 R2/Office 2013
  15. IOS学习之路五(代码实现UITableView)
  16. ubuntu下apache2-php-mysql的环境配置
  17. Linux常用命令大全(非常全!!!)
  18. 【Python】TypeError: a bytes-like object is required, not 'str'解决
  19. SSH框架环境搭建问题:Line: 230 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:230:-1
  20. codeforces水题100道 第九题 Codeforces Beta Round #63 (Div. 2) Young Physicist (math)

热门文章

  1. Golang的演化历程
  2. jquery对象及页面加载完成写法
  3. JS注册事件
  4. ASP POST请求
  5. Expression Blend学习四控件
  6. Apache Cordova for ios环境配置
  7. ARTS 1.21 - 1.25
  8. eclipse 插件编写(二)
  9. storm(二)消息的可靠处理
  10. Linux使用技巧:linux下将命令值赋给shell变量