第二章: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 —— 避免换行符问题,这个坑我踩过
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
好了,环境搭建就到这里。下一章我们聊聊分支策略,这可是团队协作的核心。你想想看,没有好的分支管理,代码冲突能让你崩溃到怀疑人生。