Git如何玩转多个远端仓库

简介: 实际开发过程中,我们有时候会遇到一个本地仓库关联着多个远端仓库的情况。那么,我们应该如何游刃有余的在两个仓库之间切换和同步代码呢?不熟悉的小伙伴,面对这个问题,一定满脸都是问号?今天,这篇文章就来给大家科普一波儿。

前言

实际开发过程中,我们有时候会遇到一个本地仓库关联着多个远端仓库的情况。那么,我们应该如何游刃有余的在两个仓库之间切换和同步代码呢?不熟悉的小伙伴,面对这个问题,一定满脸都是问号?今天,这篇文章就来给大家科普一波儿。

正文

一般情况下,我们在 GitHub 上新建一个仓库后,GitHub 会给出三种常规操作的示例方法。告诉如何把本地的一个项目关联到 GitHub 的仓库上。

这里简单说一下都有哪三种情况。

情况一、本地还有工程目录

这种情况比较简单,我们只需要同步云端仓库,本地就会自动创建工程目录,操作方法和命令如下:

git clone git@git.lozen.com:LLL/gloud/bominio.git
cd bominio
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

情况二、本地已经存在工程目录

这种情况,我们需要进入对应的工程目录,先执行git init 命令,操作方法和命令如下:

cd existing_folder
git init
git remote add origin git@git.lozen.com:LLL/gloud/bominio.git
git add .
git commit -m "Initial commit"
git push -u origin master

情况三、本地已经存在工程目录且已经关联其他仓库

这种情况,就是我们今天要讨论的内容。主要的难点在于定义远端仓库的名字和仓库切换,先说一下操作方法和命令如下:

cd existing_repo
git remote rename origin old-origin
git remote add origin git@git.lozen.com:LLL/gloud/bominio.git
git push -u origin --all
git push -u origin --tags

当我们把仓库弄混之后,很容易会错误的把该属于A仓库的代码推到B仓库上,从而导致错误,常见的错误如下:

fatal: unable to access 'github.com/minio/minio…': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

想解决这种情况,就需要我们把远程仓库的管理搞明白。下面通过一个实例,来介绍如果修改远程仓库的名字。我们可以通过命令git remote -v 查看当前仓库的所有关联的远程仓库地址,比如:

localhost:bominio lz$ git remote -v

borigin git@git.lozen.com:LLL/gloud/bominio.git (fetch)

borigin git@git.lozen.com:LLL/gloud/bominio.git (push)

origin github.com/minio/minio… (fetch)

origin github.com/minio/minio… (push)

通过上面的输出结果,我们可以知道 bominio 仓库关联了两个远程仓库,分别是 borigin 和 origin。此时,如果我们想把自己的仓库名 borigin 改成 origin 的话,需要怎么操作呢?说到这里,我突然想到了超级简单的笔试题:写一个算法,交换变量a和变量b的值。是的,原理差不多!我们需要先把占着 origin 名字的仓库改成别的名字,再把我们自己的仓库改成 origin 。具体的操作如下:

// 先把 origin 名字的仓库改成别的名字

localhost:bominio lz$ git remote rename origin old-origin

localhost:bominio lz$ git remote -v

borigin git@git.lezon.com:LLL/gloud/bominio.git (fetch)

borigin git@git.lezon.com:LLL/gloud/bominio.git (push)

old-origin github.com/minio/minio… (fetch)

old-origin github.com/minio/minio… (push)

修改自己仓库的名字,命令如下:

localhost:bominio lz$ git remote rename borigin origin

此时,再查看两个远程仓库的名字,我们发现已经OK啦。

localhost:bominio lz$ git remote -v

old-origin github.com/minio/minio… (fetch)

old-origin github.com/minio/minio… (push)

origin git@git.lozen.com:LLL/gloud/bominio.git (fetch)

origin git@git.lozen.com:LLL/gloud/bominio.git (push)

改名字的问题已经搞定啦,接下来再说同步代码的事情。既然我们已经可以通过名字来区分不同的远程仓库,那么在同步代码的时候,就需要为每一条命令指明仓库对象。比如,平时我们同步代码只需要执行git pull,就可以把远端仓库代码同步到本地,但是当存在多个远程仓库时,就需要执行git pull origin

结尾

好了,关于使用 Git 玩转多个远程仓库的内容就介绍完了。其实,很多问题都是这样,不是有多难,只是你不知道而已。感兴趣的小伙伴,赶紧动手尝试吧!我是 liuzhen007(别名:Data-Mining),欢迎评论留言+一键三连。



作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄

目录
相关文章
|
2月前
|
安全 开发工具 git
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
266 5
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
|
4月前
|
开发工具 git 开发者
Git流程控制:远程仓库操作的实用指南
通过遵循这些步骤和策略,你将能够更有效地与远程仓库进行交互,确保代码变更的透明度和项目历史的干净。同时,良好的版本控制习惯可以减少潜在的冲突,并帮助保持代码库的整洁。在日常工作中应用这些实用的Git流程控制技巧将是非常有益的。
169 0
|
7月前
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
11月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
696 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
8月前
|
Shell 开发工具 git
解决git bash报错:在仓库中检测到可疑的所有权
总的来说,解决“在仓库中检测到可疑的所有权”的报错,关键在于理解和调整文件或目录的所有权。只要我们正确地设置了文件或目录的所有权,那么我们就可以避免这种问题,让Git Bash正常工作。
293 22
|
6月前
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
284 0
|
8月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
5427 11
|
11月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
498 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
553 2
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
201 0