CentOS 7默认yum安装的Git仅1.8.x,不支持LFS、partial clone等新特性,必须源码编译安装2.40+版本;需先卸载旧版、安装Development Tools及gettext-devel等依赖,再下载源码、configure、make、install,并配置PATH与SELinux上下文。

CentOS 7 默认的 git 太旧,yum install git 装出来是 1.8.x,根本跑不了 modern Git LFS 或 git clone --filter
CentOS 7 官方源里 git 最高只到 1.8.3.1,连 git config --global core.autocrlf 都不支持(会报错 unknown option),更别说 partial clone、sparse index 这些新特性。想用 2.40+ 版本,必须绕过系统源。
推荐直接编译安装,比第三方 repo 更可控
很多教程推 ius 或 wandisco 源,但它们更新滞后(比如 ius 的 git240 包在 CentOS 7 上缺 libpcre2-8.so.0)、依赖冲突频发。自己编译反而更快、更干净:
- 去 GitHub Releases 页面 下载最新 tarball,比如
git-2.45.2.tar.gz -
sudo yum groupinstall "Development Tools"(别漏掉引号) sudo yum install gettext-devel openssl-devel perl-CPAN perl-ExtUtils-MakeMaker curl-devel expat-devel- 解压后进目录,运行:
make configure→./configure --prefix=/usr/local→make -j$(nproc)→sudo make install - 确认生效:
/usr/local/bin/git --version,再把/usr/local/bin加到$PATH前面(写进/etc/profile.d/git.sh)
CentOS 8/9 用户别走编译老路,改用 dnf + appstream
CentOS 8+ 已废弃 yum,且自带 AppStream 仓库提供较新版本:
- 先查可用版本:
dnf module list git(CentOS 8)或dnf --enablerepo=appstream list git*(CentOS 9) - 启用稳定更新流(如
git:2.39):sudo dnf module enable git:2.39 - 再装:
sudo dnf install git(自动拉取对应 stream 的二进制) - 注意:CentOS 9 Stream 的
git默认就是 2.43+,不用额外操作
装完记得检查 git config --system 和 --global 冲突
新 git 二进制替换后,老配置项可能失效(比如 core.abbrev 从整数变成布尔值),尤其当 /etc/gitconfig 和 ~/.gitconfig 同时存在时:
- 用
git config --list --show-origin看所有生效配置来源 - 删掉
/etc/gitconfig里过时项(如color.ui=auto在新版已默认开启) - 如果用 CI/CD,确保脚本里没硬编码
/usr/bin/git—— 新版在/usr/local/bin/git,得改路径或靠$PATH解析
/usr/local/bin/git 可能被标记为 unconfined_u:object_r:usr_t:s0,而某些受限环境(如 Jenkins agent 容器外挂载)会拒绝执行。遇到 Permission denied 但文件权限明明 OK,先跑一遍 sudo restorecon -v /usr/local/bin/git。


















