2、Git环境搭建:在Windows/Linux/MacOS上安装Git,配置SSH密钥,连接远程仓库
说实话,很多嵌入式工程师觉得Git环境搭建就是“下一步下一步”的事。我以前也这么想,直到有次帮同事排查问题,发现他折腾了两天连不上GitHub,最后原因是SSH密钥权限设错了。嗯,这种坑踩过一次就记住了。
这一章我们就把三件事彻底搞定:装Git、配SSH、连远程仓库。不管你是Windows、Linux还是MacOS,跟着走一遍,以后就不会再被环境问题卡住。
2.1 各平台安装Git
Git的安装其实不复杂,但不同平台有各自的“脾气”。我个人的习惯是:能用包管理器就别去官网下载,省事,更新也方便。
2.1.1 Windows
Windows用户直接去 git-scm.com 下载安装包。安装时注意几个关键选项:
- 选择默认编辑器:我建议选VSCode或Nano,别用Vim(除非你真的很熟)
- 调整PATH环境变量:选“Git from the command line and also from 3rd-party software”
- 换行符转换:选“Checkout Windows-style, commit Unix-style line endings”——嵌入式项目经常跨平台,这个设置最稳妥
2.1.2 Linux(Ubuntu/Debian系)
Linux最简单,一行命令搞定:
sudo apt update
sudo apt install git
git --version
如果是CentOS/RHEL系:
sudo yum install git
# 或者
sudo dnf install git
装完验证一下版本。我个人建议版本不低于2.20,太老的版本有些功能不支持。
2.1.3 MacOS
Mac用户分两种情况:
- 有Homebrew:
brew install git,最干净 - 没有Homebrew:去git-scm.com下载dmg安装包,或者装Xcode Command Line Tools(自带git)
2.2 基础配置:你是谁
装完Git第一件事,告诉它你是谁。这个信息会写入每次提交:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
检查配置:
git config --global --list
这里有个细节:邮箱一定要和远程仓库注册的邮箱一致。我之前有同事用了不同的邮箱,结果GitHub上提交记录显示的是灰色匿名头像,查了半天才发现是邮箱不匹配。
2.3 配置SSH密钥
为什么要用SSH?说白了就是不用每次操作都输密码。HTTPS方式每次push都要输账号密码,烦不烦?SSH配好了,一劳永逸。
2.3.1 生成密钥对
ssh-keygen -t ed25519 -C "你的邮箱@example.com"
为什么用ed25519?它比RSA更安全,性能也更好。如果系统不支持(比如太老的Linux),可以用:
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"
执行后会问保存路径和密码短语(passphrase)。密码短语建议设一个,虽然每次用要输一次,但安全很多。我有个同事没设密码短语,结果私钥文件被人拷走了……嗯,后果你懂的。
2.3.2 添加密钥到ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows用户注意:如果你用的是Git Bash,ssh-agent可能没自动启动。可以手动启动,或者用下面这个配置让它自动跑:
# 编辑 ~/.bashrc 或 ~/.bash_profile
eval "$(ssh-agent -s)" > /dev/null
2.3.3 查看公钥并添加到远程仓库
cat ~/.ssh/id_ed25519.pub
复制输出的内容,然后去远程仓库添加:
| 平台 | 添加位置 |
|---|---|
| GitHub | Settings → SSH and GPG keys → New SSH key |
| GitLab | Preferences → SSH Keys → Add key |
| Gitee | 设置 → SSH公钥 → 添加公钥 |
2.4 测试SSH连接
配置完别急着用,先测试一下:
ssh -T git@github.com
# 如果看到:Hi 用户名! You've successfully authenticated...
# 说明成功了
GitLab和Gitee类似:
ssh -T git@gitlab.com
ssh -T git@gitee.com
如果报错“Permission denied”,别慌。先检查:
- 公钥是否已添加到远程仓库
- 私钥是否已添加到ssh-agent
- ~/.ssh目录权限是否正确(应该是700)
2.5 连接远程仓库:克隆与推送
SSH通了之后,就可以操作远程仓库了。先克隆一个项目试试:
git clone git@github.com:用户名/仓库名.git
如果是新建项目,流程是:
# 本地初始化
mkdir my-embedded-project
cd my-embedded-project
git init
# 添加远程仓库
git remote add origin git@github.com:用户名/仓库名.git
# 推送
git add .
git commit -m "初始提交"
git push -u origin main
这里有个小坑:默认分支名。GitHub现在默认是main,但有些老仓库还是master。推送前先确认一下远程仓库的默认分支名。
2.6 本章知识结构图
下面这张图把Git环境搭建的完整流程串起来了:
2.7 常见问题与避坑
最后总结几个我踩过的坑,你遇到了可以直接翻到这里:
| 问题 | 原因 | 解决 |
|---|---|---|
| Permission denied (publickey) | SSH密钥未添加或权限不对 | 检查公钥是否添加到远程仓库,私钥权限设为600 |
| Host key verification failed | 首次连接未确认主机指纹 | 手动确认指纹,或检查known_hosts文件 |
| git push 要求输入密码 | 使用了HTTPS而非SSH远程地址 | 改用 git@github.com:... 格式的地址 |
| 提交者显示为Unknown | 未配置user.name/email | 执行 git config --global 配置 |