搞版本管理这事,很多人第一次用 Git 的时候都挺懵的。命令行敲下去没反应、push 上去代码没了、合并分支冲突一大堆,这些我全经历过。后来用熟了才明白,Git 的基本操作其实就那么几个,只要把“提交、分支、推送、拉取”这条主线搞清楚,日常开发基本就够用了,剩下的都是遇到问题再查的高级玩法。
这篇东西不打算写成文档式的大而全,就按我实际用 Git 干活的经验来讲,从安装配置到常用命令,再把高频坑和解决方案一起放出来。适合刚接触 Git 的开发者,也适合用了一阵子但总感觉没吃透的朋友。看完你至少能独立把一个项目从零推到远程仓库,跟同事协作时不慌。
1. 环境安装与初始化配置:新机器上跑通 Git 的第一步
1.1 各平台安装与避坑细节
先解决“有没有 Git”的问题。Windows 用户直接去 Git 官网下载安装包就行,下载的时候认准 64-bit 版本。安装过程中有几个选项我建议你注意一下:
- 安装路径尽量不要带中文和空格,省得后面有些工具识别不了;
- 选择默认编辑器时,如果你不会 Vim,建议直接选 Notepad++ 或 VS Code,不然一不小心在终端里进了 Vim 界面,半天退不出来;
- “Adjusting your PATH environment”这一步,要选 “Git from the command line and also from 3rd-party software”,否则后面在终端里敲
git会提示找不到命令; - 换行符转换那个选项,Windows 用户选 “Checkout Windows-style, commit Unix-style line endings” 就好,这是最不容易出幺蛾子的方案。
macOS 用户就简单多了,装过 Homebrew 的话一条命令搞定:brew install git。没装 Homebrew 的,直接去官网下载 pkg 包安装也可以。Linux 用户更简单,apt install git 或者 yum install git,具体看发行版。
装完以后,打开终端(Windows 是 Git Bash 或 PowerShell),输入 git --version,能输出版本号就说明装好了。这一步卡住的话,99% 是 PATH 环境变量的问题,后面第 5 章会专门讲怎么处理。
1.2 装完必须做的第一轮配置
Git 装好后不是马上就能用,得先告诉它“你是谁”。这个身份信息会写进每一次提交里,以后查历史记录就知道某行代码是谁改的。
bash复制git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
--global 参数表示全局生效,也就是说这台机器上所有仓库都会用这个身份。如果你在某一个项目里有特殊需要,可以在那个项目目录下不用 --global 单独设置,这样就只对当前仓库生效。
另外建议顺手把默认分支名改成 main,因为现在新建仓库的主流做法是 main 而不是 master:
bash复制git config --global init.defaultBranch main
还有一个非常实用的配置是颜色显示,默认 Git 的输出从终端里看会非常费劲,打开颜色后文件状态、分支信息一目了然:
bash复制git config --global color.ui true
首次配置完,可以用 git config --list 检查一下所有配置项,确认 user.name 和 user.email 都正确。别小看这一步,我见过不少人提交完代码后才发现邮箱填错,历史记录里全是错误邮箱,后面想改非常麻烦。
1.3 远程认证:SSH Key 与 HTTPS 凭证
配置完身份,接下来要面对的是远程仓库的认证问题。现在主流平台(GitHub、GitLab、Gitee 等)都支持 HTTPS 和 SSH 两种方式。我个人的建议是:如果你主要用命令行,优先配 SSH,一次配置长期免密,比 HTTPS 每次输账号密码舒服太多。
生成 SSH Key 的命令:
bash复制ssh-keygen -t ed25519 -C "你的邮箱"
一路回车就行,默认路径在 ~/.ssh/id_ed25519。生成完以后,把公钥内容复制出来:
bash复制cat ~/.ssh/id_ed25519.pub
然后把这段公钥添加到你的 Git 平台账号里。GitHub 的话是 Settings → SSH and GPG keys → New SSH key,把复制的内容粘贴进去保存。添加完以后验证一下:
bash复制ssh -T git@github.com
如果看到 “Hi xxx! You've successfully authenticated” 之类的提示,就说明 SSH 认证已经通了。
如果你不想折腾 SSH,用 HTTPS 方式也完全没问题。首次 push 或 clone 的时候,Git 会弹窗让你输账号密码,选择记住凭证后,
