都在喊AI编程,连Git都不会,你用啥跟AI协作?
wuhiufan
2026年了,随便一个技术帖子都在教你怎么让AI写代码。Claude Code、Cursor、Codex、WorkBuddy——工具换了一茬又一茬,但有一样东西从来没变过:Git。
不管是让AI帮你改代码,还是让AI帮你发版,底层都绕不开一件事——把代码管好。而管代码这件事,Git说了算。
可惜很多人学AI编程,上来就装工具、跑Demo,遇到版本回退就傻眼,遇到分支冲突就删库重来。不是工具不好用,是你连地基都没打好。
这篇开始,我把Git和GitHub最核心的概念串一遍,不讲废话,只讲你真正用得上的。
先搞清楚:Git和GitHub不是一回事
很多人把这两个词混着用,但它们完全不一样:
Git是一个版本控制工具,装在你电脑上,离线也能用。它的活儿是记录你每次改了什么、什么时候改的、谁改的。
GitHub是一个网站,把你的代码放到互联网上,方便别人看、别人改、大家协作。你可以理解成"用Git管理的代码,上传到GitHub这个平台来托管"。
打个比方:Git是你家里的账本,GitHub是网上银行。账本你自己记,银行帮你存着、让别人也能查。
三个分区:Git最核心的设计
Git把你的文件分成三个区域。理解这三个区域,Git的命令你就懂了一大半。
工作区(Working Directory)
就是你电脑上实际看到的那些文件。你改了代码、删了文件、新建了个页面,这些改动都在工作区里。但这时候Git还没管你,它不知道你改了啥。
暂存区(Staging Area)
你改完了,得告诉Git"这些改动我要纳入版本管理"。用git add命令把改动放进去。暂存区就像购物车——你往里放了东西,但还没结账,随时可以拿出来。
本地仓库(Local Repository)
确认没问题了,用git commit提交。这时候改动就正式进了版本库,成了历史记录的一部分。相当于结账了,这笔交易记下了。
文件在这三个区域之间流转,就是Git最基本的工作流:
工作区 ──git add──> 暂存区 ──git commit──> 本地仓库
说人话就是:改代码 → 挑出要提交的 → 确认提交。
快照思维:Git不是存差异,是存照片
很多人以为Git像Word的"修订模式",只记录每次改了哪些字。不是的。
Git每次提交,都会对当前所有文件拍一张"快照"。没改过的文件,它不重复存,只存一个链接指向上次的版本。改过的文件,才真正存一份新的。
这意味着什么?你可以随时回到任何一个历史版本,不需要从最早的版本一步步"重放"。直接跳过去就行,因为每个版本都是完整的。
这也是为什么Git比SVN快——SVN要看完整历史才能恢复版本,Git直接翻到那一页。
Commit:你跟未来的自己对话
git commit -m "提交信息",这行命令谁都会敲。但提交信息写什么,决定了三个月后你能不能看懂自己干了啥。
好的提交信息长这样:
feat: 新增用户注册页面
fix: 修复支付金额计算错误
refactor: 重构日志模块,提取公共方法
烂的提交信息长这样:
update
修改
123
wtf
一个实用的习惯:提交信息用动词开头,说明你做了什么,而不是做了什么结果。三个月后你翻历史记录,看到"修复支付金额计算错误",秒懂。看到"update",只能骂自己。
分支:并行开发的底层逻辑
如果没有分支,所有人都在一条线上改代码,你改一半还没好,别人的代码已经上线了,怎么办?等?那项目就卡死了。
分支就是给你一条平行的时间线。你在自己的分支上随便改,改好了再合回去。
Git创建分支非常轻量,因为它的快照机制——创建分支只是新建了一个指针,指向某个快照,没有复制任何文件。
常用操作:
git branch feature-login # 创建分支
git checkout feature-login # 切换到这个分支
git checkout -b feature-login # 创建+切换,一步到位
切换分支时,Git会自动把你的工作区变成那个分支最后一次提交的样子。你在A分支改的文件,切到B分支就看不到了。直到你把A分支合并回来。
合并与冲突:迟早要面对的坎
把分支的代码合回来,用git merge:
git checkout main
git merge feature-login
如果两个分支改了同一个文件的同一个地方,冲突就来了。Git不知道该听谁的,会把两边的代码都标出来,让你手动决定。
<<<<<<< HEAD
这是主分支的代码
=======
这是feature分支的代码
>>>>>>> feature-login
解决冲突没技巧,只有经验:保留对的,删掉错的,然后重新提交。别慌,冲突是正常的,说明有人在干活。
三个命令走通基本流程
掌握了分区、提交、分支这三个概念,日常开发最常用的就是这三步:
git add . # 把所有改动放进暂存区
git commit -m "feat: 说明" # 提交到本地仓库
git push origin main # 推送到远端
第一天用Git,会这三行就够了。
这篇是概念打底。下一篇我们把本地仓库连上远端,讲清楚GitHub上的协作流程——clone、push、pull、fork、PR,一个不落。
夜雨聆风