Git多仓库关联切换与主从同步提交

本文主要介绍 Git 关联多仓库的常见操作,本地分支关联到远程仓库分支后切换到新仓库,本地分支内容推送到主仓库后同步提交到从属仓库,如推送 gitee 同时推送到 github

所属分类 工具

相关标签 Git仓库关联

添加多仓库

一般情况下我们在添加远程仓库时的命令如下:

git remote add origin https://gitee.com/mebugs/mebugs.com.git

其中 origin 是为远程仓库提供的别名,实际上是可以自由定义的。

当我们需要添加多个仓库的时候,可以通过如下操作:

# gitee
git remote add gitee https://gitee.com/mebugs/mebugs.com.git
# github
git remote add github https://github.com/mebugs/mebugs.com.git

通过 git remote -v 可以查看所有关联的远程仓库:

1648171998531

添加多仓库后 .git 目录下的 config 文件如下图所示:

1648172014976

在执行任意仓库拉取代码前建议先通过 git fetch [仓库别名] 获取下远程仓库的最新内容。

拉取代码可以通过 git pull [仓库别名] [仓库分支]

1648172029015

推送代码可以通过 git push [仓库别名] [仓库分支]

实际工作中,我们可能会遇到业务代码存放在一个仓库中,但是具体开发是放在个人Fork的仓库下。

通过 git push [仓库别名] [仓库分支] 确实可以自由提交代码到任意分支,但有时候分支很多,不一定记得清要往那边提交。

此时需要设置本地分支与远程仓库分支的关联,在拉取/推送代码时可以直接使用 git pull/push 。

本地分支与远程仓库分支的关联命令方式有两个:

# 本地没有此分支 将远程 backup 分支检出并关联本地 backup 分支
# -b 没有此分支自动创建,一般多针对非 master 分支
git checkout -b backup gitee/backup
# 本次有分支 将远程 master 分支关联到本地 master 分支 
$ git branch --set-upstream-to=gitee/master master
# 成功反馈
Branch 'master' set up to track remote branch 'master' from 'gitee'.

此时配置文件会增加如下内容:

1648172044138

同理,如果直接在配置文件中添加上述配置也能够实现远程仓库分支和本地分支的关联操作。

仓库切换

当本地分支与远程分支关联后,可能会涉及到仓库切换的情况。

可以通过 git branch --set-upstream-to= 命令进行修改:

# 修改前需要先 fetch 需要切换的程仓库的最新内容。
git fetch github
# 重新设置关联
git branch --set-upstream-to=github/master master

1648172056450

配置文件变动如下:

1648172067752

同理,直接在配置文件中修改 remote = [仓库别名] 也可以实现关联仓库的切换。

主从仓库同步提交

当您理解了上方内容后,如果遇到需要同步提交的需求时,可以对配置文件进行微调即可完成。

比如:本地修改代码后默认推送到 gitee ,希望一条 git push 命令可以同时将内容推送到 github 。

将两个仓库地址合并到一个别名下,本地分支关联此别名,配置文件:

[remote "mebugs"]
    url = https://gitee.com/mebugs/mebugs.com.git
    url = https://github.com/mebugs/mebugs.com.git
    fetch = +refs/heads/*:refs/remotes/mebugs/*
[branch "master"]
    remote = mebugs
    merge = refs/heads/master

1648172085289

当使用 git push 时,先向 gitee 推送,推送完成后继续向 github 推送,效果如下图:

1648172097066

米虫

做一个有理想的米虫,伪全栈程序猿,乐观主义者,坚信一切都是最好的安排!

本站由个人原创、收集或整理,如涉及侵权请联系删除

本站内容支持转发,希望贵方携带转载信息和原文链接

本站具有时效性,不提供有效、可用和准确等相关保证

本站不提供免费技术支持,暂不推荐您使用案例商业化

发表观点

提示

昵称

邮箱

QQ

网址

当前还没有观点发布,欢迎您留下足迹!

同类其他

工具

SoapUI启动报错The JVM could not be started

SoapUI是一款开源的API测试工具,可以轻松构造请求进行API接口测试,启动报错主要由于JVM的性能参数配置有问题,可以修改配置文件解决

eclipse配置编码格式后部分文件依旧乱码

eclipse 中全局配置和项目配置均设置了编码方式为 UTF-8 ,但是实际打开项目文件发现部分文件依旧存在中文乱码,右击查看其编码格式依旧是 GBK ,可通过按照类型配置格式的方式解决此问题

Git在各种场景下的仓库关联

本文针对Git常见的三种场景:全新工程、本地已有工程、以及其他分支关联,详细的操作命令、流程、作用以及注意事项,Git命令并不受代码托管平台的影响,因此本质上可以通用解决问题

Chrome开发者模式保留访问日志以及过滤请求

Chrome开发者模式下提供了保保留访问日志的能力便于检查历史请求是否正常,同时提供了请求显示过滤器可以方便快速定位您想看的请求记录或过滤掉某些不想显示的请求记录

Xshell6和Xftp6家庭版(Xmanager系列工具)

Xmanager是一个非开源(商用)的实用无缝衔接工具(个人可以获取家庭版),其中最常用的Xshell和Xftp可以非常便捷的在Windows系统下连接Unix环境,是目前市面最好的连接工具,运维工程师必备良品

Beyond Compare 4 无限试用方案

Beyond Compare 强大专业的文件和文件夹对比工具,可以很方便地比较出文件或文件夹的差异,支持众多种格式的对比,支持快速替换,商用软件,默认试用30天(次)+15天,过期后可以进行重复试用。

选择个人头像

昵称

邮箱

QQ

网址

评论提示

  • 头像:系统为您提供了12个头像自由选择,初次打开随机为你选择一个
  • 邮箱:可选提交邮箱,该信息不会外泄,或将上线管理员回复邮件通知
  • 网址:可选提交网址,评论区该地址将以外链的形式展示在您的昵称上
  • 记忆:浏览器将记忆您已选择或填写过得信息,下次评论无需重复输入
  • 审核:提供一个和谐友善的评论环境,本站所有评论需要经过人工审核