2、Git环境搭建:Windows/Linux下Git安装、Git Bash配置、SSH密钥生成与GitHub/GitLab关联
好,咱们正式开始动手了。
环境搭建这件事,说难不难,说简单吧,我见过太多同事卡在这一步。有的是装完Git发现命令行敲不了,有的是SSH密钥死活连不上GitHub。其实说白了,就是几个关键点没踩对。
这一章,我带你从头捋一遍。Windows和Linux我都会讲,你根据自己情况选着看就行。
2.1 Windows下安装Git
Windows用户最省心的方式,就是去Git官网下载安装包。但我个人习惯用Git for Windows,它自带Git Bash,这个终端工具比Windows原生的cmd好用太多了。
- 选择「Use Git from the command line and also from 3rd-party software」
- 换行符转换选「Checkout as-is, commit as-is」
为什么?第一个选项保证你在任何终端都能用git命令。第二个选项,我在FPGA项目里吃过亏——Windows和Linux混用项目时,自动换行符转换会把你的.v文件搞乱。
装完之后,打开Git Bash,敲一句:
git --version
能看到版本号,就说明装好了。
2.2 Linux下安装Git
Linux就简单多了。Ubuntu/Debian系:
sudo apt update
sudo apt install git
CentOS/RHEL/Fedora系:
sudo yum install git
# 或者
sudo dnf install git
装完同样验证一下版本。嗯,这里要注意,有些老系统的源里Git版本比较旧,我个人建议从源码编译安装,或者添加PPA源。为什么?因为旧版本对SSH密钥的支持可能不够好,后面关联GitHub时会报奇怪的错。
2.3 Git Bash配置与初始化
不管Windows还是Linux,装完Git之后第一件事,就是告诉Git你是谁。这个信息会写入每一次提交记录里。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
我习惯再加几个配置:
git config --global core.autocrlf input
git config --global core.editor "vim"
git config --global color.ui true
解释一下:core.autocrlf input 是让Git在提交时把换行符转成LF,但检出时不动。这个配置在FPGA团队协作中特别重要——你想想看,有人用Windows,有人用Linux,如果换行符不一致,diff出来的结果全是乱糟糟的。
2.4 SSH密钥生成
为什么要用SSH?说白了,就是不用每次推送代码都输密码。GitHub和GitLab都支持HTTPS和SSH两种协议,我个人强烈推荐SSH。
生成密钥很简单:
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"
然后一路回车。如果你想给密钥加个密码(passphrase),也可以设一个。我个人习惯不加,因为开发时频繁推送,每次输密码太烦了。但如果你对安全性要求高,加一个也无妨。
生成完之后,你会得到两个文件:
~/.ssh/id_rsa—— 私钥,打死也不要给别人看~/.ssh/id_rsa.pub—— 公钥,这个是要上传到GitHub/GitLab的
查看公钥内容:
cat ~/.ssh/id_rsa.pub
复制整段内容,包括开头的 ssh-rsa 和结尾的邮箱。
2.5 关联GitHub/GitLab
以GitHub为例,登录你的GitHub账号,点右上角头像 → Settings → SSH and GPG keys → New SSH key。
把刚才复制的公钥粘贴进去,Title随便写个能认出来的名字,比如「我的办公电脑」。
GitLab的操作类似:Settings → SSH Keys → 粘贴公钥。
关联完之后,测试一下:
ssh -T git@github.com
如果看到类似这样的输出,就说明成功了:
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.
2.6 本章知识体系
下面这张图,帮你把整个环境搭建的流程串起来:
2.7 常见问题与排查
我整理了几个高频问题,你遇到了可以直接对照着查:
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| ssh -T 提示 Permission denied | 公钥没上传,或者上传错了 | 检查 ~/.ssh/id_rsa.pub 内容,重新上传 |
| git clone 报错 SSL certificate problem | 公司网络代理或证书问题 | 设置 git config --global http.sslVerify false(不推荐长期使用) |
| Git Bash 中文乱码 | 编码设置不对 | 右键标题栏 → Options → Text → 选 UTF-8 |
| git push 每次都要输密码 | 用的是HTTPS协议,没配SSH | 改用SSH协议,或者配置 credential helper |
好了,环境搭好了,密钥也配上了。下一章咱们就开始真正用Git管理FPGA项目了。
公众号:蓝海资料掘金营,微信deep3321