2、Git安装与配置:Windows/Linux/MacOS下的Git安装、全局配置(user.name、user.email)、SSH密钥生成与配置
好,咱们正式开始动手。这一章讲的是Git落地前的准备工作——安装和配置。
你可能觉得这有什么好讲的?下载、下一步、完成,不就三分钟的事吗?
嗯,我刚开始也这么想。直到有一次,团队里一个新同事提交代码时,commit记录里显示的名字是「Administrator」,邮箱是空的。我们排查了半天,才发现他根本没配user.name和user.email。从那以后,我每次带新人,第一件事就是盯着他把这些配好。
2.1 各平台下的Git安装
先说说安装。不同操作系统,安装方式略有差异,但核心都一样——装好之后能在终端里敲git --version看到版本号。
Windows
我个人习惯用Git for Windows,也就是那个带Git Bash的版本。你直接去官网下载安装包就行。
安装时有几个选项要注意:
- 选择默认编辑器:我建议选VSCode或Notepad++,别用Vim——除非你真的很熟Vim。我在ADAS团队里见过有人不小心进了Vim界面,直接关终端重装的。
- 调整PATH环境:选「Git from the command line and also from 3rd-party software」。这样你在CMD或PowerShell里也能直接用git命令。
- 换行符转换:选「Checkout Windows-style, commit Unix-style line endings」。ADAS项目里经常有跨平台协作,这个设置能避免换行符引发的冲突。
Linux
Linux下就简单了。Ubuntu/Debian系用apt,CentOS/RHEL用yum。
# Ubuntu/Debian
sudo apt update
sudo apt install git
# CentOS/RHEL
sudo yum install git
装完验证一下:
git --version
# 输出类似:git version 2.34.1
我记得有一次在嵌入式开发板上装Git,那个系统是裁剪过的,apt源里没有Git包。最后我是从源码编译的,折腾了大半天。所以如果你在特殊环境里装,建议先确认一下包管理器里有没有。
macOS
macOS用户,我推荐用Homebrew安装:
brew install git
当然,你也可以装Xcode Command Line Tools,里面自带Git。但那个版本可能比较旧。ADAS项目里有些新特性(比如部分克隆、稀疏检出)需要Git 2.25以上,所以我还是建议用Homebrew装最新版。
2.2 全局配置:user.name 和 user.email
装好Git之后,第一件事就是配身份信息。这是Git提交记录里的「签名」,别人一看就知道是谁改的代码。
配置命令很简单:
git config --global user.name "Zhang Wei"
git config --global user.email "zhangwei@adas-team.com"
注意几点:
- 名字用真实姓名:别用网名、昵称。我在ADAS团队里见过有人用「SuperDriver」,结果代码评审时没人知道是谁。
- 邮箱用公司邮箱:最好跟代码评审系统(比如Gerrit、GitLab)里的邮箱一致。否则提交记录可能关联不到你的账号。
- --global 是全局生效:如果你有多个项目需要不同身份,可以在项目目录里去掉--global,单独配置。
验证配置是否生效:
git config --global --list
# 输出:
# user.name=Zhang Wei
# user.email=zhangwei@adas-team.com
2.3 SSH密钥生成与配置
接下来是SSH密钥。说白了,这就是你访问远程仓库的「身份证」。有了它,你就不用每次push都输密码了。
生成密钥对
打开终端,执行:
ssh-keygen -t rsa -b 4096 -C "zhangwei@adas-team.com"
解释一下参数:
-t rsa:指定算法为RSA。当然你也可以用ed25519,更安全、更短。但有些老旧的Git服务器可能不支持。-b 4096:密钥长度。4096位是目前推荐的最低标准。-C:注释,通常填你的邮箱。方便识别。
执行后,系统会问你保存路径和密码短语(passphrase)。
- 保存路径:默认是
~/.ssh/id_rsa。我建议就用默认,省事。 - 密码短语:可以为空。但如果你在共享机器上工作,建议设一个。每次使用SSH密钥时都要输入这个密码。
添加密钥到SSH代理
生成之后,把私钥加到SSH代理里,这样就不用每次都手动指定了:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
如果你设了密码短语,这里会提示你输入一次。之后在当前会话里就不用再输了。
配置远程仓库
把公钥内容复制出来:
cat ~/.ssh/id_rsa.pub
你会看到一串以ssh-rsa开头、以你的邮箱结尾的字符串。全选复制。
然后登录你的GitLab/GitHub/Bitbucket,找到SSH Keys设置页面,粘贴进去,保存。
验证是否配置成功:
ssh -T git@github.com
# 如果看到类似:
# Hi Zhang Wei! You've successfully authenticated...
# 就说明配好了。
2.4 多SSH密钥管理(进阶)
如果你同时用多个Git平台(比如公司用GitLab,个人用GitHub),就需要管理多个SSH密钥。
我的做法是:
- 为每个平台生成独立的密钥对:
ssh-keygen -t rsa -b 4096 -C "work@adas-team.com" -f ~/.ssh/id_rsa_work
ssh-keygen -t rsa -b 4096 -C "personal@gmail.com" -f ~/.ssh/id_rsa_personal
- 在
~/.ssh/config文件里配置映射关系:
# 公司GitLab
Host gitlab.adas-team.com
HostName gitlab.adas-team.com
User git
IdentityFile ~/.ssh/id_rsa_work
# 个人GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_personal
这样,当你clone公司仓库时,Git自动用工作密钥;clone个人项目时,用个人密钥。互不干扰。
ssh -T git@gitlab.adas-team.com分别测试每个Host是否连通。我每次换电脑都会跑一遍这个测试,确保万无一失。
好了,安装和配置就这些。下一章我们开始讲Git的基本操作——init、add、commit、log。这些是日常用得最多的命令,也是你写代码时最亲密的伙伴。