Configure git to use IPv4 instead of IPv6 by default

Checking the environment variables and also HTTP configuration options does not reveal something. Is there a way to do this?

  • How to change a past git commit+push message in RubyMine?
  • Git: can't undo local changes (error: path … is unmerged)
  • git update-index --assume-unchanged and git reset
  • Viewing html in Gitweb
  • How to Add a File in .git Directory to Track It?
  • Is there a way with Git to make future merges ignore version number difference in a pom file between branches?
  • Switch from SVN to GIT for C# developments?
  • Sync GIT and ClearCase
  • Setup Git-server on windows computer
  • How can I email someone a git repository?
  • How to use the default git commit message after resolving merge conflicts?
  • Why doesn't “git branch” show anything in my new BitBucket clone?
  • 3 Solutions collect form web for “Configure git to use IPv4 instead of IPv6 by default”

    In 99% of cases, you should not be doing this. The real answer to the question is fix your IPv6 connection.

    Failing that, you can edit /etc/gai.conf to prefer IPv4 over IPv6. gai.conf modifies the behaviour of getaddrinfo(), which almost all IPv6–supporting applications use to resolve hostnames.

    Almost all systems ship with a copy of /etc/gai.conf within their glibc or libc package. If it is missing from /etc, usually I find a template copy is lurking somewhere within /usr/share/doc, for you to copy into /etc and modify accordingly.

    With git 2.8 (March 2016), you can force git fetch/push/clone to use IPV4 or IPV6.

    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 operations

    Sometimes 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.

    The more generic solution (that also works for BSD) is to edit the global /etc/ssh/ssh_config or per-user ~/.ssh/config and add/replace the entry:

    AddressFamily any 
    

    with

    AddressFamily inet
    

    You can also set this for just a single host:

    Host example.com
        AddressFamily inet
    
    Git Baby is a git and github fan, let's start git clone.