Git远程仓库管理

前言

工作中有个别项目因为一些原因,需要需要在两个不同的代码仓库间提交、同步同一份代码, 这时,开发者可以通过在同一个本地git仓库中,关联不同的远程仓库来实现。

首先要确认的是,开发者同时拥有两个仓库的账号及操作权限,比如要操作的是两个不同gitlab的仓库,需要分别在gitlab账号中添加SSH Key。

使用git remote命令管理远程仓库

我们通过git remote相关的命令来管理需要关联的远程仓库。

查看远程仓库

查看所有远程仓库的别名:

bash 复制代码
$ git remote
origin

使用这个命令会列出所有远程仓库的简短别名,我们使用git clone命令克隆一个仓库时,git会默认给它命名为origin。

查看所有远程仓库的别名及地址等详细信息:

bash 复制代码
$ git remote -v
origin	ssh://git@gitlab.xxx.cn/git-demo.git (fetch)
origin	ssh://git@gitlab.xxx.cn/git-demo.git (push)

加上-v参数后,会列出别名及地址详细信息,表示我们拥有对应远程仓库的拉取、推送权限。

另外,所有远程仓库信息被保存在本地文件.git/config中。

添加远程仓库

bash 复制代码
$ git remote add <name> <url>

重命名

bash 复制代码
$ git remoet rename <old-name> <new-name>

删除远程仓库

bash 复制代码
$ git remove <name>
$ git rm <name>

对指定远程仓库的git操作

获取远程分支:

bash 复制代码
$ git fetch <remote-name> <branch-name>

检出远程分支到本地:

bash 复制代码
$ git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>

git add, git commit之后推送代码到远程分支

bash 复制代码
$ git push -u <remote-name> <branch-name>
bash 复制代码
$ git merge <branch-name>

可能遇到的问题

合并两个不同远程仓库的分支时,可能会出现错误提示:

bash 复制代码
$ git merge <branch>
fatal: 拒绝合并无关的历史

通过添加--allow-unrelated-histories来解决:

bash 复制代码
$ git merge <branch> --allow-unrelated-histories 

本地分支名与远程分支名不同时,有可能错误操作推送产生新的分支,可以使用以下命令删除不需要的远程分支:

bash 复制代码
$ git push origin -d "branch-name"

总结一下

要将一个本地仓库代码同步至多个不同的远程仓库,可以通过在本地关联多个不同的远程仓库来实现。

  • 确保同时拥有两个仓库的操作权限
  • 在已有的仓库中,添加新的remotegit remote add <new-remote-name>
  • 拉取新remote分支git pull <new-remote-name> <branch-name>
  • 提交、推送代码至新remotegit push <new-remote-name> <branch-name>
相关推荐
阿俊-全栈开发3 小时前
LikeShop 单商户高级版二开项目的 Git 分支管理与版本发布规范
git·likeshop·likeshop开源商城·likeshop多商户
努力弹琴的大风天3 小时前
TortoiseGit 仓库不显示绿色对号解决方案
git·tortoisegit·图标显示
我不会插花弄玉6 小时前
GitHub实操【由浅入深-Git】
git·github
说实话起个名字真难啊6 小时前
Git常用小问题笔记
笔记·git·elasticsearch
橙露21 小时前
git简明教程以及资源分享
大数据·git
codigger1 天前
别再靠"最终版-改"活下去了:一篇讲透 Git 与 GitHub
git·程序员·github·编程·控制版本
JustNow_Man1 天前
【Harness】本地文本向量化搜索解决方案--qmd
git·python·算法
香吧香1 天前
GitHub Actions 详解
git
Madison-No71 天前
Git版本控制工具(三)
git
可乐_不渴2 天前
【Linux】 项目自动化构建工具makefile&& 版本管理Git&&第一个程序
linux·git·自动化·1024程序员节