Проверка переменных окружения, а также параметров конфигурации HTTP ничего не сообщает. Есть ли способ сделать это?
Настроить git на использование IPv4 вместо IPv6 по умолчанию
Ответ 1
С помощью git 2.8 (март 2016 г.) вы можете заставить git fetc
h/push
/clone
использовать IPV4 или IPV6.
(для git pull
, см. ниже Git 2.16, Q1 2018)
См. коммит c915f11 (03 Feb 2016) by (03 февраля 2016 г.) Эрика Вонга (ele828
).
.
(Merged by Junio C Hamano -- [TG45] -- in commit e84d5e9, 24 Feb 2016)
connect
&http
: поддержка переключателей-4
и-6
для удаленных операцийИногда необходимо принудительно выполнять операции только с IPv4 или только IPv6 в сетях, где поиск имен может возвращать немаршрутизируемый адрес и останавливать удаленные операции.
-4, --ipv4:
Use IPv4 addresses only, ignoring IPv6 addresses.
-6; --ipv6:
Use IPv6 addresses only, ignoring IPv4 addresses.
Обновление Git 2.16 (Q1 2018): В отличие от документации, "git pull -4/-6 other-args
" не просил базовый "git fetch
" перейти по IPv4/IPv6, что было исправлено.
См. коммит ffb4568 (19 ноября 2017 г.) от Шую Вэй ('').
(Merged by Junio C Hamano -- [TG414] -- in commit c2b6135, 27 Nov 2017)
Ответ 2
Более общее решение (которое также работает для BSD) заключается в редактировании глобального /etc/ssh/ssh_config
или для пользователя ~/.ssh/config
и добавления/замены записи:
AddressFamily any
с
AddressFamily inet
Вы также можете установить это для всего одного хоста:
Host example.com
AddressFamily inet
Ответ 3
В 99% случаев вы не должны этого делать. Реальный ответ на вопрос: исправить ваше IPv6-соединение.
В противном случае вы можете отредактировать /etc/gai.conf
, чтобы предпочесть IPv4 через IPv6. gai.conf изменяет поведение getaddrinfo()
, которое почти все поддерживающие IPv6 приложения используют для разрешения имен хостов.
Почти все системы поставляются с копией /etc/gai.conf в рамках своего пакета glibc
или libc
. Если он отсутствует в /etc, обычно я нахожу, что копия шаблона скрывается где-то внутри /usr/share/doc, для копирования в /etc и изменения соответственно.
Ответ 4
Есть ситуации, когда обновление git или IPV6 работает, но не работает должным образом, например, в подсистеме Windows Linux, мои решения просты: просто добавьте расположение git/httpb/ssh IPV4 в /etc/hosts.
Используйте host
, чтобы получить адрес IPV4 и добавить его в /etc/hosts с именем для собственного использования, например, 1.1.1.1 git4.server.com
Ответ 5
Для тех, кто использует Ubuntu/Debian, лучший способ получить последнюю версию git - выполнить следующие шаги, взятые из здесь
sudo add-apt-repository ppa: git-core/ppa sudo apt-get update sudo apt-get install git
Обновление для версии 2. 19+ плюс решение, предложенное выше, предложенное Энтони С. Хау, решило мою проблему.