Checking the environment variables and also HTTP configuration options does not reveal something. Is there a way to do this?
With git 2.8 (March 2016), you can force git fetch
/push
/clone
to use IPV4 or IPV6.
(for git pull
, see below Git 2.16, Q1 2018)
See commit c915f11 (03 Feb 2016) by Eric Wong (ele828
).
(Merged by Junio C Hamano -- gitster
-- in commit e84d5e9, 24 Feb 2016)
connect
&http
: support-4
and-6
switches for remote operationsSometimes it is necessary to force IPv4-only or IPv6-only operation on networks where name lookups may return a non-routable address and stall remote operations.
-4, --ipv4:
Use IPv4 addresses only, ignoring IPv6 addresses.
-6; --ipv6:
Use IPv6 addresses only, ignoring IPv4 addresses.
Update Git 2.16 (Q1 2018): Contrary to the documentation, "git pull -4/-6 other-args
" did not ask the underlying "git fetch
" to go over IPv4/IPv6, which has been corrected.
See commit ffb4568 (19 Nov 2017) by Shuyu Wei (``).
(Merged by Junio C Hamano -- gitster
-- in commit c2b6135, 27 Nov 2017)
With Git 2.29 (Q4 2020), "git fetch --all --ipv4/--ipv6
(man)" forgot to pass the protocol options to instances of the "git fetch" that talk to individual remotes, which has been corrected.
See commit 4e735c1 (15 Sep 2020) by Alex Riesen (ar-cetitec
).
(Merged by Junio C Hamano -- gitster
-- in commit 6854689, 22 Sep 2020)
fetch
: pass--ipv4
and--ipv6
options to sub-fetchesSigned-off-by: Alex Riesen
The options indicate user intent for the whole fetch operation, and ignoring them in sub-fetches (i.e. "
--all
" and recursive fetching of submodules) is quite unexpected when, for instance, it is intended to limit all of the communication to a specific transport protocol for some reason.
With Git 2.42 (Q3 2023), the invalid options --no-ipv4
ou --no-ipv6
are rejected early.
See commit a2dad48, commit ae2c912 (18 Jul 2023) by Junio C Hamano (gitster
).
(Merged by Junio C Hamano -- gitster
-- in commit 9562f19, 27 Jul 2023)
fetch
: reject--no-ipv[46]
Now we have introduced
OPT_IPVERSION()
, tweak its implementation so that "git clone
"(man), "git fetch
"(man), and "git push
"(man) reject the negated form of Use only IP version N options.
You will therefore see "unknown option" if you are using --no-ipv[46]
.