Git Pull无法识别-4/--ipv4选项的解决方法求助
git pull无法使用-4/--ipv4选项的问题 你的问题根源很明确:Git 2.15.1是一个比较老旧的版本,当时git pull命令还没有集成-4/--ipv4的支持,而git push已经先一步实现了这个选项——这是Git功能迭代过程中的阶段性差异。下面给你几个实用的解决方案:
方案1:拆分git pull为git fetch + git merge(快速临时解决)
git pull本质就是git fetch(拉取远程更新)加上git merge(合并到本地分支)的组合命令,而2.15.1版本的git fetch已经支持-4/--ipv4选项。所以你可以分开执行这两步:
# 用IPv4拉取origin仓库的master分支更新 git fetch -4 origin master # 将拉取的更新合并到本地master分支 git merge origin/master
如果嫌每次敲两条命令麻烦,可以给这个组合设置一个Git别名:
git config --global alias.pull4 '!git fetch -4 origin "$1" && git merge origin/"$1"'
之后直接输入git pull4 master就能完成带IPv4的拉取合并操作,和git pull的效果完全一致。
方案2:全局强制Git使用IPv4(一劳永逸)
如果不想每次都额外加参数,可以配置Git或SSH,让所有针对BitBucket的连接默认使用IPv4:
如果你用HTTPS协议连接仓库
执行以下命令,强制Git的所有HTTP请求使用IPv4:
git config --global http.ipv4 true
设置完成后,不管是git pull还是git push,都会自动优先使用IPv4,无需再手动加-4选项。
如果你用SSH协议连接仓库
如果你的远程仓库地址是SSH格式(比如git@bitbucket.org:your-username/your-repo.git),需要修改SSH配置:
- 打开(如果不存在就创建)
~/.ssh/config文件 - 添加以下内容:
Host bitbucket.org AddressFamily inet
inet表示强制使用IPv4地址族,这样SSH连接BitBucket时会自动跳过IPv6,直接用IPv4建立连接,从根源上解决网络不可达的问题。
方案3:升级Git版本(彻底解决功能缺失)
Ubuntu 14.04默认软件源里的Git版本确实偏旧,升级到较新的版本后,git pull就会原生支持-4/--ipv4选项。你可以通过官方PPA来升级:
- 添加Git官方PPA源:
sudo add-apt-repository ppa:git-core/ppa sudo apt-get update
- 安装升级Git:
sudo apt-get install git
升级完成后,你就可以直接使用git pull -4 origin master或者git pull --ipv4 origin master,和git push的用法保持一致了。
内容的提问来源于stack exchange,提问作者Samkit Jain

