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装最新版。

小提示:不管哪个平台,装完后都重启一下终端。有时候环境变量没刷新,你敲git命令会报「command not found」。别问我怎么知道的——我当年也卡在这一步。

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
避坑指南:我曾经遇到过一位同事,他配了user.email但忘了配user.name。结果Git自动用了系统用户名「zhangw」。后来我们做代码统计时,发现「zhangw」和「Zhang Wei」被当成了两个人。所以,两个字段一定要都配好。

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...
# 就说明配好了。
重要提醒:公钥(.pub文件)可以随便给别人看。私钥(没有后缀的那个文件)绝对不能泄露。我见过有人把私钥贴到GitHub Gist里,结果几分钟内服务器就被扫了。私钥就是你的数字身份,保护好它。

2.4 多SSH密钥管理(进阶)

如果你同时用多个Git平台(比如公司用GitLab,个人用GitHub),就需要管理多个SSH密钥。

我的做法是:

  1. 为每个平台生成独立的密钥对:
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
  1. ~/.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后,可以用ssh -T git@gitlab.adas-team.com分别测试每个Host是否连通。我每次换电脑都会跑一遍这个测试,确保万无一失。

好了,安装和配置就这些。下一章我们开始讲Git的基本操作——init、add、commit、log。这些是日常用得最多的命令,也是你写代码时最亲密的伙伴。