配置git默认使用IPv4而不是IPv6

时间:2014-02-10 07:55:28

标签: git ipv6 ipv4

检查环境变量以及HTTP配置选项并不会显示任何内容。有没有办法做到这一点?

5 个答案:

答案 0 :(得分:22)

更通用的解决方案(也适用于BSD)是编辑全局/etc/ssh/ssh_config或每用户~/.ssh/config并添加/替换条目:

AddressFamily any 

AddressFamily inet

您也可以只为一个主机设置:

Host example.com
    AddressFamily inet

答案 1 :(得分:22)

使用git 2。8(2016年3月),您可以强制git fetc h / push / clone使用IPV4或IPV6。
(对于git pull,见下文Git 2.16,2018年第一季度)

commit c915f11Eric Wong (ele828)(2016年2月3日) Junio C Hamano -- gitster --于2016年2月24日commit e84d5e9合并)

  

connect& http:支持-4-6用于远程操作的开关

     

有时,有必要在名称查找可能返回不可路由的地址并停止远程操作的网络上强制执行仅IPv4或仅IPv6操作。

-4, --ipv4:
     

仅使用IPv4地址,忽略IPv6地址。

-6; --ipv6:
     

仅使用IPv6地址,忽略IPv4地址。

更新Git 2.16(2018年第一季度):与文档相反," git pull -4/-6 other-args"没有询问基础" git fetch"浏览已经更正的IPv4 / IPv6。

commit ffb4568Shuyu Wei (``)(2017年11月19日) Junio C Hamano -- gitster --于2017年11月27日commit c2b6135合并)

答案 2 :(得分:12)

在99%的情况下,你应该这样做。这个问题的真正答案是修复您的IPv6连接

如果失败,您可以编辑/etc/gai.conf以优先选择IPv4 over IPv6。 gai.conf修改getaddrinfo()的行为,几乎所有支持IPv6的应用程序都使用它来解析主机名。

几乎所有系统都在其glibclibc包中附带了/etc/gai.conf的副本。如果/ etc中缺少它,通常我会发现模板副本潜伏在/ usr / share / doc中的某个位置,以便您复制到/ etc并相应地进行修改。

答案 3 :(得分:1)

有些情况下升级git或运行IPV6但未按预期工作的情况,例如,在Windows Linux子系统下,我的解决方案很简单:只需在/ etc / hosts上添加git / httpb / ssh IPV4位置即可。

使用host获取IPV4地址,并将其附加到/ etc / hosts,并附上您自己使用的名称,例如1.1.1.1 git4.server.com

答案 4 :(得分:0)

对于使用Ubuntu / Debian的用户,获取最新git版本的最佳方法是遵循以下步骤,摘自here

<input type="number" name="yourName" min="-999" max="999">

由Anthony C Howe提出的更新2.19+版本以及上述解决方案已经解决了我的问题。