Git 安装与配置:搞定开发环境的第一关

说实话,我见过太多新手倒在「装 Git」这步上。不是装不上,而是装完不知道怎么配。或者配了 SSH 但死活连不上远程仓库。今天咱们把这事一次性理清楚。你想想,版本控制工具都跑不溜,后面还怎么协作?

一、不同系统的安装方式

先看你的操作系统。我电脑上常年三个系统轮着用,Mac 写代码,Windows 跑测试,Linux 做部署。每个系统的安装方法我都踩过坑。

Windows 安装

官方给了 exe 安装包,没什么好说的。但我建议你注意两点:

  • 安装时 一定要勾选「Git Bash Here」,这样右键菜单里会有 Git Bash,比 cmd 好用多了。
  • 换行符处理选「Checkout as-is, commit Unix-style line endings」。我以前选错了,结果同事 Windows 和 Mac 来回改代码,每次 diff 都一堆空行变更,差点被项目经理骂哭。
# 下载地址
https://git-scm.com/download/win

# 安装后验证
git --version

Linux 安装

Linux 下最简单。但我记得有一次 CentOS 默认源的 Git 版本太老,导致某些新特性不支持。所以最好是添加官方源或者编译安装。

# Ubuntu / Debian
sudo apt update
sudo apt install git

# CentOS / RHEL 7/8
sudo yum install git
# 或启用 EPEL 源获取新版
sudo yum install epel-release
sudo yum install git

# Fedora
sudo dnf install git

# 从源码编译(最新版)
wget https://github.com/git/git/archive/v2.40.0.tar.gz
tar -xzf v2.40.0.tar.gz
cd git-2.40.0
make prefix=/usr/local all
sudo make prefix=/usr/local install

Mac 安装

Mac 用户很幸福。我平时用 Homebrew 装,省心。

# 方法一:Homebrew(推荐)
brew install git

# 方法二:Xcode Command Line Tools
xcode-select --install
# 装完自带 Git

# 方法三:官方 dmg
# 去 git-scm.com 下载 macOS 版 pkg
小技巧:安装完后先用 git --version 看版本。如果是 Windows 或 Mac,记得重启终端让环境变量生效。

二、用户全局配置

装好 Git,第一件事就是告诉它「你是谁」。否则提交时显示 unknown,队友根本不知道谁改的代码。我习惯一次性设好全局变量:

git config --global user.name "Zhang San"
git config --global user.email "zhangsan@example.com"

# 查看配置
git config --global --list
# 或者看单个
git config user.name

这里要注意,user.email 最好跟你的远程仓库(GitHub/GitLab)绑定的邮箱一致。我曾经用公司邮箱配了私人仓库,结果 SSH key 和邮箱不匹配,推送时被拒,排查了半小时。

除了姓名和邮箱,还有几个配置我建议你一开始就设好:

# 设置默认编辑器(我习惯用 VSCode)
git config --global core.editor "code --wait"

# 设置 diff 工具
git config --global diff.tool vimdiff

# 设置别名(相信我,这个省时间)
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph --all"

核心要点:全局配置存在 ~/.gitconfig 里。如果你想给某个项目单独配不同的用户名(比如个人项目用私人邮箱),就在项目目录下不加 --global 执行 git config,它会存在项目的 .git/config 里。

三、SSH 配置:从本地到远程的安全通道

为什么要配 SSH?说白了,每次 push/pull 输密码太烦了。我之前用 HTTP 协议,公司防火墙限制多,后来换成 SSH,快还安全。配一次,以后就不用再输密码了。

3.1 生成 SSH Key

你的机器上可能已经有 key 了。先检查一下:

ls -al ~/.ssh/
# 如果有 id_rsa 和 id_rsa.pub,说明已有

没有的话就生成一对。我用的是 ed25519 算法,比 RSA 短且性能好。当然,旧系统可能不支持,那就用 RSA。

# 推荐 ed25519
ssh-keygen -t ed25519 -C "zhangsan@example.com"

# 如果系统太老
ssh-keygen -t rsa -b 4096 -C "zhangsan@example.com"

# 按提示输入文件路径(默认 ~/.ssh/id_ed25519)
# 再输入 passphrase(可以留空,但不建议,安全第一)

我记得有一次我偷懒没设 passphrase,结果笔记本被同事借去用了一天,他竟不小心 push 了我的临时修改…… 嗯,从此我学会了加 passphrase 并配合 ssh-agent 管理。

3.2 添加公钥到远程仓库

把公钥内容复制出来:

# Windows 直接在 Git Bash 里
cat ~/.ssh/id_ed25519.pub | clip

# Mac
pbcopy < ~/.ssh/id_ed25519.pub

# Linux
cat ~/.ssh/id_ed25519.pub
# 手动选中复制

然后去 GitHub / GitLab / Gitee 的 Settings → SSH Keys → Add new key,粘贴进去。标题写个「工作笔记本」之类,方便以后管理。

3.3 测试连接

配好了最重要的一步:验证。

ssh -T git@github.com
# 看到 "Hi xxx! You've successfully authenticated" 就对了

# 如果是 GitLab
ssh -T git@gitlab.com
常见问题:如果报 "Permission denied (publickey)",先检查 ~/.ssh/config 有没有配错。没配的话手动加一下:
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes

3.4 ssh-agent 管理多个 Key

工作中你可能同时用 GitHub(个人)和 GitLab(公司)。我以前手动切 key,痛苦死了。后来用 ssh-agent + config 搞定。

# 启动 ssh-agent
eval "$(ssh-agent -s)"

# 添加 key(有 passphrase 的会弹窗输入一次,之后会话内不重复输)
ssh-add ~/.ssh/id_ed25519_github
ssh-add ~/.ssh/id_ed25519_gitlab

# ~/.ssh/config 里按 Host 区分
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github

Host gitlab.mycompany.com
    HostName gitlab.mycompany.com
    User git
    IdentityFile ~/.ssh/id_ed25519_gitlab

现在 clone 和 push 时 Git 会自动匹配合适的 key,再也不用手动切换。爽。

四、知识体系图:Git 配置全流程

下图把本章的知识点串起来了。你装完 Git 后,跟着这个流程走一遍,基本就能正常工作了。

Git 安装与配置流程 选择操作系统 Windows - exe安装 Linux - apt/yum/源码 Mac - brew/pkg 用户全局配置 别名与编辑器 邮箱和姓名 换行符策略 SSH Key 生成与配置 ✅ 可推送的 Git 环境

五、避坑指南(我这些年踩过的雷)

列几个常见坑,你遇上了直接照方抓药:

问题原因解决办法
git push 报 403SSH key 没配或配错ssh -T git@github.com 测试,看服务器给的提示
文件换行符不一致导致 diff 爆炸Windows CRLF vs Linux LF全局设 core.autocrlf input,Windows 设 true
git commit 后发现有敏感信息忘了加 .gitignore用 git reset HEAD~ 撤销,或者 git rm --cached 移除缓存
多个 SSH key 互相干扰config 没按 Host 区分写 ~/.ssh/config,每个 Host 指定不同 IdentityFile

曾经有一次,我在公司电脑上生成了 SSH key 并加了 passphrase,但忘了添加到 ssh-agent。结果每次 git push 都要求输入密码,我以为是远程仓库的问题,折腾了半小时才发现是 agent 没跑起来。所以建议你配完后直接跑一遍 ssh-add -l 确认 key 已经加载。

六、总结

Git 安装和配置看似琐碎,但真要上手做项目时,这步没走稳后面全是坑。装好 Git,配好用户名和邮箱,生成 SSH key,加到远程仓库,搞定。

别急着往后翻,先把你电脑上的 Git 环境按上面的流程配一遍。配好之后随便 git init 一个测试仓库,试试 git commit 和 git push,确认无误再继续学后面的内容。嗯,磨刀不误砍柴工。