前言
工作中经常有需要将一个项目推送到多个远程仓库的需求,这里对相关方法做个简单记录。
操作方法
查看现有远程仓库信息:
# 首先查看当前项目远程仓库信息
# 显示的信息中每一行为一条内容
# 头部为远程仓库名称 中间为地址 最后为该条内容支持fetch还是push
git remote -v
# 为当前已有的一个远程仓库添加新的推送地址
git remote set-url --add <name> <url>
# 可以使用下面命令来删除额外的添加
# git remote set-url --delete <name> <url>
# 接下来就直接正常推送即可
git push
# git push后不加任何东西表示推送到origin
下面是一个实际操作的演示
至此本文的目的已达成。
需要注意的是这里多个仓库设置只在本地有效,如果本地项目删除后,重新从远程克隆项目,这时候如果需要再度推送到多个远程仓库就需要重新进行设置。
更多补充
可以看到上面的操作中主要用到 git remote
指令,相关说明可以直接查看内置帮助:
# brife
git remote -h
# detail
git remote --help
除了上面演示的添加关联的远程推送地址,也可以直接添加正常的带独立推拉的远程仓库:
# 添加一个名为name的远程仓库
# 比如 git remote add gitee https://...
git remote add <name> <url>
# 但是这种方式推送时需要分别推送
# 可以使用下面命令来删除远程仓库
# git remote remove <name>
# 可以使用下面命令重命名远程仓库
# git remote rename <old> <new>
事实上上面一些对远程仓库设置相关信息都保存在 项目目录/.git/config
文件中,可以直接打开或者使用 git config -e
命令来查看和编辑:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = http://xxxxxxxx/naisu/STM32_MCU_Examples.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/NaisuXu/STM32_MCU_Examples.git
[branch "main"]
remote = origin
merge = refs/heads/main
[gui]
wmstate = normal
geometry = 1310x670+202+162 608 218
当然大部分时候用指令也就够了。