環境変数とHTTP構成オプションをチェックしても、何かは明らかになりません。これを行う方法はありますか?
Git 2.8(2016年3月)では、git fetc
h/Push
/clone
はIPV4またはIPV6を使用します。
(ために git pull
、下記のGit 2.16、2018年第1四半期を参照)
commit c915f11 (2016年2月3日) Eric Wong(ele828
) 。
( Junio C Hamano-gitster
- によってマージ commit e84d5e9 、2016年2月24日)
connect
&http
:サポート-4
および-6
リモート操作用のスイッチ名前の検索でルーティング不可能なアドレスが返され、リモート操作が停止する可能性があるネットワークでは、IPv4のみまたはIPv6のみの操作を強制する必要がある場合があります。
-4, --ipv4:
IPv6アドレスを無視して、IPv4アドレスのみを使用します。
-6; --ipv6:
IPv4アドレスを無視して、IPv6アドレスのみを使用します。
Git 2.16(2018年第1四半期)の更新:ドキュメントに反して、「git pull -4/-6 other-args
"は、基になる" git fetch
"はIPv4/IPv6を通過するように修正されました。
Shuyu Wei( ``) による commit ffb4568 (2017年11月19日)を参照してください。
( Junio C Hamano-gitster
- によってマージ commit c2b6135 、2017年11月27日)
より一般的な解決策(BSDでも機能します)は、グローバル/etc/ssh/ssh_config
またはユーザーごと~/.ssh/config
とエントリを追加/置換:
AddressFamily any
と
AddressFamily inet
これを単一のホストにのみ設定することもできます。
Host example.com
AddressFamily inet
99%のケースでは、これを行うべきではありません。質問に対する本当の答えはIPv6接続を修正するです。
それができない場合は、_/etc/gai.conf
_を編集して、IPv6よりもIPv4を優先することができます。 gai.confはgetaddrinfo()
の動作を変更します。これは、ほとんどすべてのIPv6対応アプリケーションがホスト名を解決するために使用します。
ほとんどすべてのシステムには、glibc
またはlibc
パッケージ内の/etc/gai.confのコピーが同梱されています。/etcにない場合、通常、/ usr/share/doc内のどこかにテンプレートのコピーが潜んでいることがわかります。これは、/ etcにコピーして変更するためです。
アップグレードgitまたはIPV6が実行されているが期待どおりに機能しない状況があります。たとえば、Windows Linuxサブシステムでは、私のソリューションは単純です。/etc/hostsにgit/httpb/ssh IPV4の場所を追加するだけです。
Host
を使用してIPV4アドレスを取得し、それを/ etc/hostsに独自の名前で追加します。たとえば、1.1.1.1 git4.server.com
Ubuntu/Debianを使用している場合、最新のgitバージョンを入手するための最良の方法は、 here から以下の手順に従ってください。
Sudo add-apt-repository ppa:git-core/ppa
Sudo apt-get update
Sudo apt-get install git
Anthony C Howeによって提案されたバージョン2.19+と上記のソリューションに更新すると、問題が解決しました。