第二章:Git环境搭建——在Windows/Linux/macOS上安装Git,配置SSH密钥与多账户管理

说实话,很多嵌入式团队的项目管理混乱,根源就在环境搭建这一步没走稳。我见过不少工程师,Git装上了就以为万事大吉,结果一提交代码就报错,一拉分支就冲突。嗯,今天咱们就把这事彻底理清楚。

2.1 各平台安装Git

先说说安装。不同操作系统,安装方式略有差异,但核心都一样——把Git这个工具请进你的电脑。

2.1.1 Windows 安装

Windows用户最简单。去Git官网下载安装包,双击运行。我个人习惯在安装向导里勾选这几项:

  • Git Bash Here —— 右键菜单里直接打开命令行,嵌入式开发经常要用
  • Git GUI Here —— 偶尔图形化操作也方便
  • Checkout as-is, commit as-is —— 避免换行符问题,这个坑我踩过
注意: 安装路径不要有中文和空格。我曾经有个同事,装在了“Program Files (x86)”里,结果脚本路径解析总出问题,排查了半天。

2.1.2 Linux 安装

Linux就一句话的事。Debian/Ubuntu系:

sudo apt update
sudo apt install git

Red Hat/CentOS系:

sudo yum install git

嵌入式开发常用Ubuntu,所以我推荐用apt。装完验证一下:

git --version

看到版本号,就说明成功了。

2.1.3 macOS 安装

macOS用户,我建议用Homebrew安装:

brew install git

为什么不用Xcode自带的?因为版本太旧。我遇到过几次,旧版Git对子模块支持不好,导致嵌入式项目里的第三方库拉不下来。所以,还是brew装最新版靠谱。

2.2 配置SSH密钥

装好Git,下一步就是配置SSH。说白了,就是让你的电脑和远程仓库(GitHub、GitLab、自建服务器)之间建立一条安全通道。

2.2.1 生成SSH密钥对

打开终端,执行:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这里有几个参数我解释一下:

  • -t rsa:指定算法类型,RSA最通用
  • -b 4096:密钥长度,4096位足够安全
  • -C:注释,通常填你的邮箱,方便识别

执行后,系统会问你保存路径。我一般直接回车,用默认的 ~/.ssh/id_rsa。然后会让你输入密码短语(passphrase),这个可以空着,但为了安全,我建议设一个。

小技巧: 如果你和我一样记性不好,可以用 ssh-agent 来管理密码短语。这样只需要输入一次,后续就不用重复输入了。

2.2.2 添加公钥到远程仓库

生成完密钥对,你需要把公钥添加到远程仓库。先查看公钥:

cat ~/.ssh/id_rsa.pub

复制输出的内容,然后登录你的GitHub/GitLab,找到 Settings → SSH and GPG keys,点击 New SSH key,粘贴保存。

验证是否成功:

ssh -T git@github.com

如果看到类似 Hi username! You've successfully authenticated... 的提示,就说明配置好了。

2.3 多账户管理

嵌入式开发中,你很可能同时使用多个Git账户。比如公司用GitLab,个人用GitHub,客户可能还有自己的仓库。怎么管理?

2.3.1 生成多个SSH密钥

为每个账户生成独立的密钥对:

ssh-keygen -t rsa -b 4096 -C "work@company.com" -f ~/.ssh/id_rsa_work
ssh-keygen -t rsa -b 4096 -C "personal@gmail.com" -f ~/.ssh/id_rsa_personal

注意 -f 参数,指定了不同的文件名。这样就不会覆盖了。

2.3.2 配置SSH Config文件

这是关键一步。在 ~/.ssh/ 目录下创建 config 文件(没有扩展名):

# 工作账户 - GitLab
Host gitlab.work.com
  HostName gitlab.work.com
  User git
  IdentityFile ~/.ssh/id_rsa_work

# 个人账户 - GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_personal

配置好之后,Git会自动根据你连接的域名,选择对应的密钥。我曾经因为没配这个,导致公司和个人仓库的提交记录混在一起,被领导批评了。嗯,从那以后我再也不敢偷懒了。

2.3.3 测试多账户

分别测试两个账户:

ssh -T git@github.com
ssh -T git@gitlab.work.com

如果都返回成功,说明配置生效了。

2.4 全局与局部用户配置

多账户场景下,你还需要设置不同的用户名和邮箱。全局配置用于个人项目:

git config --global user.name "Your Name"
git config --global user.email "personal@gmail.com"

局部配置用于公司项目。进入项目目录后执行:

git config --local user.name "Work Name"
git config --local user.email "work@company.com"

查看当前配置:

git config --list

你会看到全局和局部配置同时存在,局部配置会覆盖全局配置。这个机制很实用,我经常用它来区分不同客户的项目。

核心要点:
  • SSH密钥是安全通道,每个账户独立生成
  • Config文件是路由表,告诉Git用哪个密钥
  • 局部配置覆盖全局配置,实现多账户隔离

2.5 避坑指南

最后,分享几个我踩过的坑:

  • 权限问题: ~/.ssh/ 目录权限必须是700,密钥文件权限必须是600。否则SSH会直接拒绝连接。我曾经折腾了一下午,才发现是权限没设对。
  • 换行符问题: Windows和Linux混用时,建议设置 git config --global core.autocrlf true。不然你提交的代码,别人拉下来全是乱码。
  • 代理问题: 公司内网通常有代理。如果克隆仓库超时,记得配置代理:git config --global http.proxy http://proxy.company.com:8080

好了,环境搭建就到这里。下一章我们聊聊分支策略,这可是团队协作的核心。你想想看,没有好的分支管理,代码冲突能让你崩溃到怀疑人生。