如何在不更改config配置文件的情况下 实现内、外网的push pull?
git吧
全部回复
仅看楼主
level 2
maker316 楼主
本人架设了一台git服务器,内网地址是192.168.2.100;外网访问使用花生壳域名转换实现的内网穿透,访问域名为xxxxxx.goho.co;git服务器是用ssh访问
ssh的config文件配置如下:
Hostxxxxxx-net
HostName xxxxxx.goho.co
Port xxxxx
IdentityFile ~/.ssh/id_rsa
Hostxxxxxx
HostName 192.168.2.100
Port 22
IdentityFile ~/.ssh/id_rsa
ssh 登陆服务器时,当我在内网时 我使用如下命令: ssh username@xxxxxx
当我在外网时,我使用如下命令: ssh username@xxxxxx
现在我已能够实现随心所欲的登陆服务器了
现在问题时,出差在外时,需要pull我服务器上的数据,必须去手动修改仓库config配置文件,
如仓库essayslib.git 的./.git/config内容如下:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@xxxxxx:essayslib.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
必须修改config文件的url中的行为:url = git@xxxxxx-net:essayslib.git
这样很麻烦,不知道有没有一劳永逸的方法,麻烦赐教
2022年11月20日 14点11分 1
level 12
可以同时以两个URL去添加两个Remote,这样在对应的环境下可以都可以pull,而且这两个Remote是同一个Repo的不同URL,所以不会存在两个Remote有Conflict的情况。
2022年11月22日 13点11分 2
请问 详细如何配置
2023年01月05日 07点01分
level 12
首先像下面这样分别添加两个 remote
git remote add inner [email protected]:essayslib.git
git remote add outer [email protected]:eassylib.git
假设你只有一个 main 分支,那么最好不要为你本地的分支绑定远程分支。后续分别使用下面两个命令来获取内外网的远程信息,并合并到你的本地分支。
git fetch --verbose --progress inner
git pull --verbose --progress inner main
git fetch --verbose --progress outer
git pull --verbose --progress outer main
推送的时候也一样,分别是两个命令。
git push --verbose --progress inner main
git push --verbose --progress outer main
这种双 Remote 形式在 Fork 仓库时也很常见,从属于原主的只读仓库 upstream 里 fetch 并 pull 到本地,做完修改后 push 到属于自己的 origin 中。
2023年01月06日 04点01分 3
谢谢 我试一下 再交流
2023年01月13日 17点01分
1