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

nob*_*beh 27 git ipv4 ipv6

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

小智 26

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

AddressFamily any 
Run Code Online (Sandbox Code Playgroud)

AddressFamily inet
Run Code Online (Sandbox Code Playgroud)

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

Host example.com
    AddressFamily inet
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在 Windows 上,配置文件位于此处:C:\Program Files\Git\etc\ssh\ssh_config。另请参阅:/sf/ask/1838674491/ (3认同)
  • 说明:`inet`表示ipv4,`inet6`表示ipv6。 (2认同)
  • 这个解决方案非常适合 bitbucket,因为他们的 IPv6 解决方案在使用 git 时比他们的 IPv4 慢得多。 (2认同)

Von*_*onC 25

使用git 2.8(2016年3月),您可以强制git fetch/push/ clone使用IPV4或IPV6.
(git pull见,见下文Git 2.16,2018年第一季度)

请参阅Eric Wong()提交c915f11(2016年2月3日).(由Junio C Hamano合并- -提交e84d5e9,2016年2月24日)ele828
gitster

connect&http:支持-4-6切换远程操作

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

-4, --ipv4:
Run Code Online (Sandbox Code Playgroud)

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

-6; --ipv6:
Run Code Online (Sandbox Code Playgroud)

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


更新Git 2.16(2018年第一季度):与文档相反," git pull -4/-6 other-args"没有要求基础" git fetch"通过已经更正的IPv4/IPv6.

请参阅Shuyu Wei(``)提交ffb4568(2017年11月19日).
(由Junio C gitsterHamano合并- -提交c2b6135,2017年11月27日)


Jer*_*ser 12

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

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

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

  • 这不是我需要修复的连接,而是我碰巧坐在的WIFI-du-jour ...... (6认同)