当你遇到鳝变的(♂)远程仓库...
1. 前言
有时为了安全或经济收益,单位总会不定时更变一些IP地址。就像咱们的车载移动导弹,时刻都在移动,时刻保护着我们的安全。
这天天清气爽,咱们又把远程仓库、数据库地址换了下。这里记录一下本地修改 git remote的方式与过程
学习目标
Git set remote origin address 实战,随时可且换到不同的 remote
,随时可pull
,push
到最新代码。
参考资料
遇事不决,百度一下。
注意,由于本人习惯SSH的方式推拉代码,本文的演示基本上基于SSH。HTTP的方式只是地址略有不同,请读者结合度娘或GPT等工具酌情处理。
2. 修改Remote
在修改之前,先看看远程仓库位置变更导致的问题:
git pull origin test
ssh: connect to host [ip address] port [port]: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
mock
实际项目名与地址不方便说,mock一个,实际上咱们看到的像这样:
git pull origin test
ssh: connect to host 176.204.221.101 port 8562: Connection timed out
fatal: Could not read from remote repository.
查看当前remote
git remote -v
origin ssh://git@[ip address]:[port]/peoject_name.git (fetch)
origin ssh://git@[ip address]:[port]/project_name.git (push)
mock
git remote -v
origin ssh://git@176.204.221.101:8562/peoject_name.git (fetch)
origin ssh://git@176.204.221.101:8562/project_name.git (push)
2.1 命令行修改Remote
git remote set-url origin http://[ip address]/peoject_name.git/
例如:
git remote set-url origin ssh://git@21.14.198.162:8562/maintain/maintain-admin.git
2.2 配置文件修改Remote
我们可以直接在.git
文件夹的config文件中修改Remote:
其中,.git
文件夹默认是隐藏文件夹,若我们尚未显示隐藏的文件和文件夹,要在操作系统事先设置
一个config
文件格式可能是这样:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[submodule]
active = .
[remote "origin"]
url = ssh://git@176.204.221.101:8562/project_name.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "test"]
remote = origin
merge = refs/heads/test
[branch "feature/dev"]
remote = origin
merge = refs/heads/feature/dev
显然,我们只需要将[remote "origin"]
的url修改为我们最新的地址,保存即可。
2.3 IDE GUI 方式修改
如果习惯GUI图形化操作的同学,也可以通过GUI的方式修改远程仓库地址:
2.4 暴力解法
删掉项目,重新从项目拉取
- 优点:省去各种配置的麻烦,说不定在命令行或者修改配置文件时改错其他地方,导致其他错误
- 缺点:最近若有本地未提交的代码要复原比较麻烦
3. 总结
本文介绍了当我们的远程仓库地址发生变更,我们该如何及时更新本地git配置的几种方法,读者按需选用。其实,无论哪种方法,其本质都是修改了.git
文件夹的config
文件,我们可以用命令行,也可以直接手动修改,也可以通过工具,甚至重新拉取一次项目让它自动生成。