Git这个东西,刚接触的时候觉得反人类——add、commit、push、pull,每一步都像在跟一个脾气古怪的老头打交道。但真正用熟了,你会发现它几乎是现代软件开发里最值得先啃下来的基础设施。这篇笔记不是官方文档的翻译,而是我这些年从零折腾到团队协作、从本地提交到远程仓库、从天天被命令折磨到能徒手解决疑难杂症的实战记录。内容覆盖Git安装配置、常用命令、分支管理、提交规范、免密登录、远程仓库协作,以及几个高频报错的排错过程。适合刚上手Git的初学者、被各种诡异报错卡住的开发者,以及想系统梳理一遍Git体系的同学。
1. 环境准备:安装、终端选择与第一份配置
1.1 安装方式和版本选择
Windows环境我推荐直接去Git官网下载安装包,选64-bit版本就行。如果觉得官网下载慢,可以用国内镜像,或者通过包管理器安装——Windows上可以用winget install Git.Git,macOS上brew install git,Linux发行版用apt、yum、pacman都行。
有一点值得注意:别装太老的版本。Git的旧版本在Windows上有不少历史遗留问题,比如路径处理、换行符转换、SSH支持等都可能引入莫名其妙的bug。我见过同事用Git 1.9版本连GitHub都连不上,折腾半天换了新版立刻解决。现在主流的2.3x、2.4x版本都比较稳定,建议保持更新。
安装过程中的选项,大多数保持默认即可。唯一建议改的,是默认编辑器——如果你不喜欢Vim,在安装时把默认编辑器改成VS Code或Notepad++,否则以后commit时打开编辑器会死在那里,新手很容易卡住。
1.2 终端选择:Git Bash 与“小乌龟”的定位
Windows上装完Git后,右键菜单会多出几个选项:Git Bash Here、Git GUI Here,还有可能看到TortoiseGit(小乌龟)的菜单。我用过的终端不算少,但Git Bash始终是我在Windows上最推荐的学习环境。
为什么是Git Bash而不是CMD或PowerShell?因为Git Bash模拟了Linux的shell环境,很多在Linux服务器上能用的命令(ls、grep、sed、awk、ssh)在Git Bash里都能直接跑,这样你在本地学的命令和服务器上的操作习惯是统一的,不用切换思维。
至于TortoiseGit,也就是大家常说的“小乌龟”,它是个GUI工具,做得确实很成熟,右键就能提交、推送、拉取。但我的建议是:新手先别急着用GUI掩盖命令操作,至少先把add、commit、branch这些核心命令练熟,再去用GUI提升日常效率。 命令操作能让你理解Git到底在干什么,GUI只是一个壳。等理解了原理,你用TortoiseGit、VS Code的图形界面、甚至任何Git客户端都会很顺畅。
1.3 第一份配置:user.name 和 user.email
安装完Git,第一件事不是急着clone代码,而是配置身份信息。这个配置写在每次提交里,相当于你的签名。
bash复制git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"
这里有两个很容易踩的坑:
--global是全局配置,只对当前用户生效。如果你在公司电脑上既工作又写个人项目,建议个人项目用--local方式配置单独的user.name和user.email,否则提交记录里的身份会串。- 邮箱不一定非得是你的真实邮箱,但最好能通过邮件联系到你。GitHub支持匿名邮箱功能,如果不介意别人通过提交记录搜到你的邮箱,可以配置成
你的username@users.noreply.github.com这种匿名的。
查看当前配置用 git config --list,修改仓库级配置时去掉--global、在目标仓库目录下执行即可。
1.4 安装后的自检与“无法识别git命令”
安装完先验证一下:
bash复制git --version
如果你是在Windows上装了Git但PowerShell里敲git提示“无法将“git”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,十有八九是PATH环境变量没生效或没配置。
这种情况的处理思路是:
- 看看Git到底装在哪个目录,典型路径是
C:\Program Files\Git\bin和C:\Program Files\Git\cmd。 - 把
C:\Program Files\Git\cmd加到系统PATH(在系统属性 -> 环境变量里编辑Path)。 - 改完PATH必须重启终端,重启后新的PATH才能被加载。
安装时如果勾选了“Add to PATH”选项,一般不会有这个问题,但如果你用的是绿色版、或者手动改过安装位置,就很容易遇到。这类问题本质上不是Git坏了,而是系统找不到git这个可执行文件,属于环境变量问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心命令的工作流拆解:从工作区到版本库
2.1 四个状态,一张图看懂
Git的文件生命周期可以简化成几个状态:未跟踪(untracked)、已修改(modified)、已暂存(staged)、已提交(committed)。
我教新人的时候常用一个比喻:你写论文,改完一版存在U盘里(modified),把要定稿的版本放到一个新文件夹(staged),最后提交给导师归档(committed)。Git的暂存区就是那个新文件夹,它让你可以在一次提交前精挑细选到底哪些文件放进这个版本里。
git status 是你最常用的命令,它告诉你当前仓库里什么文件处于什么状态。看到红色是已修改未暂存,绿色是已暂存待提交。
2.2 add 和 commit 的正确用法
初期最基础的操作就是:
bash复制git add <文件名> # 添加某个文件
git add .
