Git环境搭建与SSH密钥配置
说实话,我见过太多团队在代码管理上栽跟头了。有的同事用着用着突然发现提交不了代码,有的干脆连Git都没装对。今天咱们就把这第一步走扎实——从零搭建Git环境,配好SSH密钥,让你能顺畅地跟GitHub、GitLab打交道。
一、在不同操作系统上安装Git
安装Git这事儿,不同系统差别还挺大。我个人的习惯是:能用包管理器就用包管理器,别去官网手动下载,省心。
Windows上安装
Windows用户直接去Git官网下载安装包就行。但我建议你注意几个选项:
- 安装时选「Git Bash」组件——这玩意儿能让你在Windows上体验Linux命令行
- 换行符转换选「Checkout as-is, commit as-is」——我之前被自动转换坑过,代码里多了好多^M字符
- 默认编辑器选VS Code或者Notepad++,别用Vim(除非你真的很熟)
macOS上安装
Mac用户最简单,用Homebrew一行搞定:
brew install git
如果你没装Homebrew,先去装一个。或者用Xcode Command Line Tools也行:
xcode-select --install
嗯,这里要注意:Mac自带的Git版本可能比较老。我建议还是用brew装最新版,避免一些奇奇怪怪的兼容问题。
Linux上安装
Linux就更容易了,不同发行版命令不一样:
| 发行版 | 安装命令 |
|---|---|
| Ubuntu/Debian | sudo apt install git |
| CentOS/RHEL | sudo yum install git |
| Fedora | sudo dnf install git |
装完之后验证一下:
git --version
看到版本号就说明装好了。
二、配置用户信息
装好Git之后,第一件事就是告诉Git你是谁。这步不做好,你提交的代码会显示「Unknown」,队友都不知道是谁写的。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
为什么一定要配?因为每次commit都会记录这些信息。我在项目中遇到过有人配了别人的邮箱,结果代码审查的时候找不到人,特别尴尬。
检查配置是否生效:
git config --global --list
你想想看,如果团队里有人用中文名,有人用英文名,那代码历史看起来多乱。所以我建议团队统一命名规范,比如「姓 名」的拼音格式。
三、生成SSH密钥
为什么要用SSH?说白了就是不用每次推送代码都输密码。我刚开始用Git的时候,每次push都要输用户名密码,烦得要死。后来配了SSH密钥,世界清净了。
生成密钥的步骤:
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
执行后会问你三个问题:
- 保存路径——默认就行,直接回车
- 密码短语——可以设也可以不设。我建议设一个,安全一些
- 确认密码短语——再输一遍
生成完成后,你会看到两个文件:
id_rsa—— 私钥,打死也不能给别人看id_rsa.pub—— 公钥,这个可以公开
四、添加SSH公钥到GitHub/GitLab
先查看你的公钥内容:
cat ~/.ssh/id_rsa.pub
复制输出的全部内容,然后去对应的平台添加:
GitHub上添加
- 登录GitHub,点右上角头像 → Settings
- 左侧菜单选「SSH and GPG keys」
- 点「New SSH key」
- 标题随便写,比如「我的工作电脑」
- 把公钥粘贴到Key框里
- 点「Add SSH key」
GitLab上添加
- 登录GitLab,点右上角头像 → Preferences
- 左侧菜单选「SSH Keys」
- 把公钥粘贴进去,设置过期时间(我建议设一年)
- 点「Add key」
验证是否配置成功:
ssh -T git@github.com
如果看到「Hi 你的名字! You've successfully authenticated」就说明搞定了。
五、知识体系总览
下面这张图把整个流程串起来了,你可以对照着检查自己哪步没做:
六、常见问题与避坑指南
最后分享几个我踩过的坑:
- Permission denied (publickey) —— 八成是公钥没添加对,或者私钥路径不对。检查一下~/.ssh目录下的文件
- Host key verification failed —— 第一次连接远程服务器时会出现,输入yes确认就行
- git命令找不到 —— 安装后没重启终端,或者环境变量没配好
好了,环境搭好了,密钥配好了。接下来你就可以愉快地clone代码、创建分支、提交代码了。记住,好的开始是成功的一半,这一步走稳了,后面的协作才会顺畅。