如何将多个网址附加到单个git远程?
我目前通过msysgit和Cygwin的组合在windows上使用git。
我有一台笔记本电脑,我移动了很多,所以它不在一个一致的位置。 不幸的是,我没有一个一致的名称,因为计算机名称没有在我连接的所有位置上解析,所以我不能只使用计算机名称作为URL的主机(例如,git:/ / compname / repo),所以我必须使用IP地址。
有没有一种方法可以添加多个网址来从特定的远程访问? 我见过
git remote set-url --add [--push] <name> <newurl>
作为将多个URL添加到远程的一种方式,我可以在.git / config文件中看到更新,但git只会尝试使用第一个。
有没有办法让git尝试使用所有的url? 我已经尝试了git fetch和git remote update,但在第一个url之后都没有尝试任何东西。
请注意,我还没有在Linux上尝试过这一点,而且我无法修复计算机名称解析,因为这是在工作。
我认为你最好的办法是将你的远程URI设置为computername,然后将computername添加到你的hosts文件(位于%SystemRoot%system32driversetchosts
):
computername 192.168.100.34
# computername 192.168.100.68
然后,您可以为不同的IP地址保留多个条目,并根据需要评论/取消注释。 没有更多关于在每个回购基础上更改远程URI的问题,只需在一个位置更新,然后使用计算机名称作为URI进行所有回购即可使用新位置。
我亲自做同样的事情,我使用的是两个遥控器
起源:当我在家foriegn回购时的位置:我在任何其他地方回购时的位置(我的dns重定向到我家)
那么我只是推/拉到适当的遥控器,这有点混乱,但它的工作原理。
这个方法受@Mark Stickley的回答启发。 即使您有两个不同的端口号(不仅仅是主机名)从两个不同的位置访问同一台计算机,它也能正常工作。
根据情况的数量,您可以保留~/.ssh/config
多个版本。
例如,在我的家中,我使用hostname作为my-fancy-server
,端口为22
访问我的服务器。 在办公室,主机名是my-dyndns-name
,端口名是XXX
。
所以我有两个版本的~/.ssh/config
。 在家里,它说:
Host home
my-fancy-server
Port 22
User abhishek
IdentityFile /home/abhishek/.ssh/id_rsa
(请调整他的最后两个值,如果你不使用密钥,最后一个值不需要)在办公室,它说
Host home
my-dyndns-name
Port XXX
User abhishek
IdentityFile /home/abhishek/.ssh/id_rsa
我有一个脚本,用于在移动到新位置时调整~/.ssh/config
的内容。 通过编写一个由网络中的变化触发的脚本,人们可以自动执行此操作。
我的git配置文件中只有一个远程控制器,看起来像
[remote "origin"]
url = home:/path/to/repo
fetch = +refs/heads/*:refs/remotes/origin/*
编辑:我只是发现,我不必做这一切。 我只在路由器上启用了nat loopback,现在我可以使用外部名称/端口统一访问我的计算机。 但是在许多情况下,如公司网络,与路由器混淆可能不是一种选择
链接地址: http://www.djcxy.com/p/49779.html