如何将多个网址附加到单个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

上一篇: How can I attach multiple urls to a single git remote?

下一篇: How to make a GitHub mirror to Bitbucket?