linux装git关键三步:确认发行版选apt/dnf/yum安装并验证git --version≥2.30.2;配全局user.name/email且邮箱须与github/gitlab一致;ssh密钥类型(如ed25519)与公钥内容须匹配平台要求,整行复制、测试ssh -t成功后url用git@而非https://。

Linux 上装 Git 不是“装完就跑”,关键得确认你用的是哪个发行版、是否需要最新功能、以及后续要连 GitHub 还是内网 GitLab —— 这三件事直接决定你该走包管理器安装还是源码编译,也影响 SSH 密钥和换行符的配置策略。
Debian/Ubuntu 用 apt 安装最省事,但注意版本可能偏旧
绝大多数 Ubuntu 或 Debian 用户直接运行这两条命令就行:
sudo apt update sudo apt install git
装完执行 git --version,常见输出是 git version 2.39.2 或类似。这个版本够日常用,但如果你要 push 大文件(比如用 git lfs)、或需要较新的 git sparse-checkout 功能,仓库里的版本可能不支持。这时候别硬凑合,往下看源码编译部分。
容易踩的坑:
-
apt install git不会自动装git-lfs,要用得单独sudo apt install git-lfs - 某些最小化安装的 Ubuntu Server 可能缺
ca-certificates,导致git clone https://...报SSL certificate problem,补上就行:sudo apt install ca-certificates
RHEL/CentOS/Fedora 用 dnf/yum,注意系统代际差异
RHEL 8+、Fedora、AlmaLinux、Rocky Linux 统一用:
sudo dnf install git
RHEL 7 / CentOS 7 还得用老命令:
sudo yum install git
验证方式一样:git --version。这些系统默认 Git 版本通常比 Debian 系更保守(比如 RHEL 7 自带的还是 1.8.x),如果项目要求 Git ≥2.20,必须源码编译或启用 EPEL 仓库。
顺手提醒:RHEL 系默认没开 IPv6,如果公司 Git 服务器只支持 IPv6 地址,git clone 会卡住,临时解决可加 -c core.sshCommand="ssh -4" 强制走 IPv4。
想用新功能?源码编译是唯一可靠路径
当你需要 v2.45.0 或更新的 Git(比如修复了某些 SSH agent 转发 bug,或支持新的 credential helper 协议),就得自己编译。步骤不复杂,但别跳步:
先装依赖(Ubuntu/Debian):
sudo apt install build-essential libssl-dev libcurl4-gnutls-dev \ libexpat1-dev gettext unzip zlib1g-dev
(RHEL/Fedora 换成 sudo dnf groupinstall "Development Tools" + 对应 dev 包)
再下载、解压、编译:
curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.45.0.tar.gz tar -zxf git.tar.gz && cd git-2.45.0 make configure && ./configure --prefix=/usr/local && make && sudo make install
最后加进 PATH(写进 ~/.bashrc 或 /etc/profile.d/git.sh):
export PATH="/usr/local/bin:$PATH"
注意:编译安装后,git --version 显示的路径是 /usr/local/bin/git,不是系统自带的 /usr/bin/git。用 which git 确认,避免混用。
装完不配 user.name/user.email,第一次 commit 就报错
Git 不允许无身份提交,哪怕只是本地仓库。必须设全局配置:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
这两个值会写进 ~/.gitconfig,所有后续 git init 的仓库都继承它。别用中文名或空格过多的邮箱,某些 CI 工具解析会出问题。
额外建议:
- 加
git config --global init.defaultBranch main,避免老版本 Git 默认建master分支(GitHub 已全切main) - 加
git config --global core.autocrlf input(Linux/macOS),防止 Windows 同事换行符污染;如果纯 Linux 环境开发,可设false - 别漏 SSH 配置 ——
git clone git@github.com:user/repo.git要求本地有~/.ssh/id_ed25519且已ssh-add,否则提示Permission denied (publickey)
真正麻烦的从来不是装 Git,而是不同团队对 core.autocrlf、commit.gpgsign、credential.helper 的策略不一致 —— 这些细节一旦设错,协作时 merge 冲突和签名失败会反复出现,比重装还费时间。











