Linux 系统 Git 安装配置与常见问题排查
在 Linux 环境下开发,Git 是绕不开的工具。无论是团队协作还是个人项目版本管理,一套规范的 Git 环境都是基础。下面结合不同发行版,聊聊如何快速搭建并优化你的 Git 环境。
一、安装 Git
不同 Linux 发行版的包管理器略有差异,选择对应命令即可。
Debian/Ubuntu 系列
# 更新软件包列表
sudo apt update
# 安装 Git
sudo apt install git -y
# 验证安装
git --version
输出示例:git version 2.39.0
CentOS/RHEL 系列
# 启用 EPEL 仓库(若未启用)
sudo yum install epel-release -y
# 安装 Git
sudo yum install git -y
# 或使用 dnf(CentOS 8+)
sudo dnf install git -y
# 验证安装
git --version
Fedora 系列
# 使用 dnf 安装
sudo dnf install git -y
# 验证安装
git --version
Arch/Manjaro 系列
# 使用 pacman 安装
sudo pacman -Syu git
# 验证安装
git --version
源码编译安装(适用于所有发行版)
如果官方源版本过旧,可以考虑从源码编译。先下载并解压源码:
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.0.tar.gz
tar -zxvf git-2.39.0.tar.gz
cd git-2.39.0
安装依赖:
# Debian/Ubuntu
sudo apt install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
# CentOS/RHEL
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
编译并安装:
make prefix=/usr/local all
sudo make prefix=/usr/local install
# 验证安装
git --version
二、基础配置
安装完成后,别急着用,先花几分钟把基础信息配好。
1. 设置全局用户名和邮箱
这是提交代码时的身份标识,务必填写真实信息。
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# 验证配置
git config --global --list
2. 配置 SSH 密钥
为了免密访问 GitHub/GitLab 等托管平台,建议生成 SSH 密钥。
生成密钥:
ssh-keygen -t ed25519 -C "[email protected]"
按提示保存(默认路径 ~/.ssh/id_ed25519),可设置密码保护。
添加公钥到平台:
cat ~/.ssh/id_ed25519.pub
复制输出内容,登录 GitHub → Settings → SSH and GPG Keys → New SSH Key 粘贴即可。
测试连接:
ssh -T [email protected]
成功会显示 Hi username! You've successfully authenticated.。
3. 配置 Git 别名
常用命令太长?加个别名能省不少打字时间。
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
现在输入 git st 就能看状态,git lg 查看图形化日志。
4. 解决跨平台换行符问题
Windows 和 Linux/macOS 的换行符不一致,容易导致冲突。
# Linux/macOS 推荐配置
git config --global core.autocrlf input
git config --global core.safecrlf warn
三、高级设置
1. 配置差异工具
Git 自带的 diff 不够直观?可以配置 Meld 或 Beyond Compare 等工具。
以 Meld 为例:
git config --global merge.tool meld
git config --global mergetool.meld.path "/usr/bin/meld"
确保已安装 Meld:
# Debian/Ubuntu
sudo apt install meld -y
# CentOS/RHEL
sudo yum install meld -y
2. 配置代理
国内网络访问 GitHub 有时不稳定,配置代理能提升速度。
# HTTP/HTTPS 代理
# 注意替换实际 IP 和端口
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890
# SOCKS5 代理(如 Clash)
git config --global http.proxy socks5://127.0.0.1:7890
git config --global https.proxy socks5://127.0.0.1:7890
# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
3. 配置钩子(Hooks)自动化
利用 Hooks 可以在提交前自动运行检查脚本,比如代码格式校验或单元测试。
进入仓库 .git/hooks 目录,创建 pre-commit 文件:
cd /path/to/repo/.git/hooks
vim pre-commit
写入内容:
#!/bin/sh
echo "Running code checks..."
npm test
赋予执行权限:
chmod +x pre-commit
四、常见问题与解决方法
1. 安装失败:E: Unable to locate package git
通常是软件源没更新。执行以下命令重试:
sudo apt update && sudo apt install git -y
2. 权限错误:Permission denied (publickey)
检查 SSH 密钥是否已添加到远程仓库,并确保密钥已加载到 agent:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
3. Git 版本过旧
通过包管理器升级:
# Debian/Ubuntu
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt update && sudo apt upgrade git -y
# Fedora
sudo dnf upgrade git -y
4. 终端提示 git: command not found
确认是否已安装:which git。若未安装,参考上述步骤重新安装。同时检查环境变量:
echo $PATH
确保 Git 路径在其中。
五、卸载 Git
1. 通过包管理器卸载
# Debian/Ubuntu
sudo apt remove git -y
# CentOS/RHEL
sudo yum remove git -y
2. 手动卸载(源码安装)
sudo rm -rf /usr/local/bin/git
sudo rm -rf /usr/local/share/doc/git
六、参考资料
- Pro Git 电子书(免费):https://git-scm.com/book/zh/v2
- GitHub 官方教程:https://guides.github.com/
- Git 命令速查表:https://education.github.com/git-cheat-sheet-education.pdf
搞定这些配置,基本就能应对日常开发了。遇到具体报错时,善用 man git 或搜索官方文档,通常能找到答案。

