3、Git安装与配置:Windows/Linux/MacOS下Git安装,全局配置与项目配置,SSH密钥生成与配置

说实话,Git 的安装与配置,是每个嵌入式工程师入门的「第一道坎」。我见过太多同事,代码写得漂亮,结果卡在 Git 配置上,半天推不上去。今天咱们就把这事彻底捋清楚。

3.1 各平台下的 Git 安装

不同操作系统,安装方式差别挺大。我一个个说。

Windows 平台

Windows 下安装 Git,最省心的方式就是去官网下载安装包。我个人习惯用 Git for Windows,它自带了一个 Git Bash 终端,模拟 Linux 环境,用起来很顺手。

安装时注意几个关键选项:

  • 选择默认编辑器:我建议选 Vim 或 Nano,别选 Notepad++,因为后面写 commit message 时,Vim 更通用。
  • 调整 PATH 环境变量:选「Git from the command line and also from 3rd-party software」,这样你在 cmd 或 PowerShell 里也能直接敲 git 命令。
  • 换行符转换:选「Checkout Windows-style, commit Unix-style line endings」。嗯,这里要注意,嵌入式项目经常跨平台,统一用 LF 能避免很多莫名其妙的编译错误。

Linux 平台

Linux 下安装 Git 就简单多了。以 Ubuntu/Debian 为例:

sudo apt update
sudo apt install git

CentOS/RHEL 系用 yum:

sudo yum install git

我曾经在某个嵌入式 Linux 项目里,因为系统太老,默认源里的 Git 版本是 1.8,导致一些新特性用不了。后来我加了 PPA 源才搞定。所以建议装完后用 git --version 确认一下版本,至少 2.x 以上才够用。

macOS 平台

macOS 自带 Git,但版本通常比较旧。我推荐用 Homebrew 安装最新版:

brew install git

如果你还没装 Homebrew,先去装一个。做嵌入式开发,Homebrew 是 macOS 上绕不开的工具。

小提示: 装完 Git 后,第一件事就是跑一遍 git --version。如果版本低于 2.0,建议升级。老版本在处理大文件、合并冲突时,性能差很多。

3.2 全局配置与项目配置

Git 的配置分三个层级:系统级全局级项目级。优先级是项目级 > 全局级 > 系统级。说白了,项目里的配置会覆盖全局的。

全局配置

这是你个人的「身份证」。装完 Git 后,第一件事就是设置用户名和邮箱:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

为什么一定要配?因为每次 commit 都会记录这些信息。我在项目中遇到过,有人没配邮箱,结果 commit 记录里显示的是 unknown,后面追查问题根本找不到人。

其他常用全局配置:

git config --global core.editor vim
git config --global merge.tool vimdiff
git config --global color.ui auto

我个人习惯把 color.ui 打开,这样终端里能看到彩色输出,一眼就能区分增删改。

项目配置

有时候,不同项目需要不同的配置。比如公司项目用公司邮箱,个人项目用私人邮箱。这时候就在项目目录里单独配:

cd /path/to/your/project
git config user.name "公司用名"
git config user.email "公司邮箱@company.com"

注意,这里没加 --global,所以只对当前项目生效。你可以用 git config --list 查看当前生效的所有配置,它会按优先级显示。

避坑指南: 我曾经在某个项目里,全局配了公司邮箱,结果个人项目也用了公司邮箱,导致 commit 记录里全是公司域名。后来花了一下午才把历史记录改回来。所以,项目配置一定要和全局配置分开

3.3 SSH 密钥生成与配置

为什么要用 SSH?说白了,就是不用每次 push 都输密码。你想想看,一天 push 几十次,每次都输密码,多烦人。SSH 密钥对就是你的「数字钥匙」,公钥放服务器,私钥留本地。

生成 SSH 密钥

打开终端,敲:

ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"

参数说明:

  • -t rsa:指定算法为 RSA,兼容性最好。
  • -b 4096:密钥长度 4096 位,比默认的 2048 更安全。
  • -C:注释,通常写邮箱,方便识别。

然后会问你保存路径,默认是 ~/.ssh/id_rsa。我建议用默认路径,省得后面配置麻烦。接着会让你输入 passphrase,这个相当于密钥的「密码」,可以留空,但为了安全,我建议设一个。

注意: 如果你在嵌入式开发板上生成密钥,记得检查一下 /dev/random 是否可用。有些精简版 Linux 内核,随机数生成器可能有问题,导致密钥生成卡住。我踩过这个坑,后来加了 haveged 服务才解决。

添加密钥到 SSH Agent

生成完密钥后,最好把它加到 SSH Agent 里,这样一次输入 passphrase,后续就不用重复输了:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

如果你用的是 macOS,系统自带的 Keychain 可以帮你记住 passphrase:

ssh-add -K ~/.ssh/id_rsa

配置远程仓库

以 GitHub 为例,把公钥添加到你的账户里:

  1. 复制公钥:cat ~/.ssh/id_rsa.pub,然后全选复制。
  2. 登录 GitHub,进入 Settings → SSH and GPG keys → New SSH key。
  3. 粘贴公钥,保存。

然后测试连接:

ssh -T git@github.com

如果看到 Hi 你的名字! You've successfully authenticated,就说明配好了。

多账户配置(进阶)

有时候,你同时用 GitHub 和 GitLab,或者公司内网有自己的 Git 服务器。这时候需要配置多个 SSH 密钥。方法是在 ~/.ssh/config 文件里指定:

# GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_github

# GitLab
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab

# 公司内网
Host git.company.com
  HostName 192.168.1.100
  User git
  IdentityFile ~/.ssh/id_rsa_company

这样,Git 会根据你 clone 的域名,自动选择对应的密钥。我曾经在同时维护三个项目时,用这个配置省了不少事。

小技巧: 如果你发现 SSH 连接总是超时,可以试试在 ~/.ssh/config 里加一行 ServerAliveInterval 60,让客户端每隔 60 秒发一个心跳包,防止连接被防火墙断开。

好了,Git 的安装与配置就这些。说白了,配好了就是一次性的工作,后面就能安心写代码了。下一章咱们聊聊 Git 的基本工作流程,那才是真正开始用 Git 干活的时候。