Подтвердить что ты не робот

Настроить git на использование IPv4 вместо IPv6 по умолчанию

Проверка переменных окружения, а также параметров конфигурации HTTP ничего не сообщает. Есть ли способ сделать это?

4b9b3361

Ответ 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+ плюс решение, предложенное выше, предложенное Энтони С. Хау, решило мою проблему.