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出来的结果全是乱糟糟的。

避坑指南: 我曾经在一个项目里,因为没配好换行符,导致整个团队的.v文件在合并时出现了几百处「假改动」。排查了一下午才发现是换行符的问题。从那以后,我每到一个新环境,第一件事就是配这个。

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.
注意: 如果你在公司内网,可能需要配置代理。我曾经遇到过SSH连不上GitHub的情况,折腾了半天才发现是公司防火墙把22端口封了。解决办法是用HTTPS协议,或者让IT部门开放端口。

2.6 本章知识体系

下面这张图,帮你把整个环境搭建的流程串起来:

Git环境搭建知识体系 Git安装 Git Bash配置 远程仓库关联 Windows: Git for Windows Linux: apt/yum/dnf user.name / user.email core.autocrlf / color.ui SSH密钥生成 公钥上传GitHub/GitLab 验证:ssh -T git@github.com 三个步骤走完,你的Git环境就准备好了 Windows / Linux 通用流程

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
我的经验: 如果你在公司环境,SSH连不上GitHub,可以试试用HTTPS协议。虽然每次要输密码,但至少能干活。等IT把端口开了再切回SSH。

好了,环境搭好了,密钥也配上了。下一章咱们就开始真正用Git管理FPGA项目了。


公众号:蓝海资料掘金营,微信deep3321