当前位置: 首页 > news >正文

使用一句 git 命令将仓库的改动推送到所有的远端

git 支持一个本地仓库包含多个远端(remote),这对于开源社区来说是一个很重要的功能,可以实时获取到最新的开源代码且能推送到自己的仓库中提交 pull request。

有时候多个远端都是自己的,典型的就是 GitHub Pages 服务了,推送总是希望这几个远端能够始终和本地仓库保持一致。本文将介绍一个命令推送到所有远端的方法。


我的博客同时发布在 GitHub 仓库 https://github.com/walterlv/walterlv.github.io 和 Gitee 仓库 http://gitee.com/walterlv/walterlv。由于这两个远端的 Pages 服务没有打通,所以我总是需要同时将博客推送到两个不同的远端中。

第一步:设置多个远端(remote)

使用你平常使用的方法添加多个 git 远端。

例如:

git remote add github https://github.com/walterlv/walterlv.github.io.git --no-tags

需要注意,对于不是 origin 的远端,建议不要拉取 tags,所以我加了 --no-tags 选项。

我添加了两个新的远端(github 和 gitee)之后,打开你仓库 .git 文件夹中的 config 文件,应该可以看到如下的内容:

[remote "origin"]
	url = https://github.com/walterlv/walterlv.github.io.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[remote "github"]
	url = https://github.com/walterlv/walterlv.github.io.git
	fetch = +refs/heads/*:refs/remotes/github/*
	tagopt = --no-tags
[remote "gitee"]
	url = https://gitee.com/walterlv/walterlv.git
	fetch = +refs/heads/*:refs/remotes/gitee/*
	tagopt = --no-tags

第二步:添加一个名为 all 的新远端

现在,我们要添加一个名为 all 的新远端,并且在里面添加两个 url。由于这个步骤没有 git 命令行的帮助,所以你需要手工修改 config 文件中的内容。

[remote "all"]
	url = https://github.com/walterlv/walterlv.github.io.git
	url = https://gitee.com/walterlv/walterlv.git
	tagopt = --no-tags

如果你有更多需要同步的远端,那么就在里面添加更多的 url。

开始使用一个命令同步所有的仓库

现在,你可以使用一句命令将本地的修改推送到所有的远端了。

git push all

我现在自己的博客仓库就是这样的推送方式。于是你可以在以下多个地址打开阅读我的博客:

  • https://walterlv.com/
  • https://walterlv.github.io/
  • https://walterlv.gitee.io/
  • https://walterlv.oschina.io/
  • https://blog.walterlv.com/ 构建中,点开会没有证书

我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 将 svn 仓库迁移到 git 仓库
  • 使用 Visual Studio 调试多进程的程序
  • 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
  • 为 WPF 程序添加 Windows 跳转列表的支持
  • 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限)
  • 专栏素材
  • Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题)
  • 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢?
  • 全局或为单独的项目添加自定义的 NuGet 源
  • 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决
  • 我收集的各种公有 NuGet 源
  • 制作一个极简的 .NET 客户端应用自安装或自更新程序
  • 在 MSBuild 编译项目时阻止输出所有的警告信息
  • 【Leetcode】101. 对称二叉树
  • @jsonView过滤属性
  • 08.Android之View事件问题
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • k8s如何管理Pod
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Swift 中的尾递归和蹦床
  • 简析gRPC client 连接管理
  • 开源地图数据可视化库——mapnik
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 思维导图—你不知道的JavaScript中卷
  • 线性表及其算法(java实现)
  • 新版博客前端前瞻
  • 用 Swift 编写面向协议的视图
  • Linux权限管理(week1_day5)--技术流ken
  • MyCAT水平分库
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $(function(){})与(function($){....})(jQuery)的区别
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1)bark-ml
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (23)Linux的软硬连接
  • (4)(4.6) Triducer
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)计算机毕业设计高校学生选课系统
  • (转)Sql Server 保留几位小数的两种做法
  • (转)母版页和相对路径
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 受管制代码
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • []error LNK2001: unresolved external symbol _m
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C/C++] -- 二叉树
  • [C++] Windows中字符串函数的种类