本课目录(14 节)
- 一句话本质(开场钩子)
- 为什么要在乎(钩子展开 · 双向讲法,覆盖两类人)
- 核心概念(六个词,逐个讲透,内容给足)
- 1. 仓库(repo / repository)——项目的家
- 2. commit 与历史——每一次改动的存档点
- 3. branch 与 PR(pull request)——平行草稿,和"请过目"
- 4. issue——项目的公开待办与讨论贴
- 5. fork——复印一份到自己名下
- 6. merge 即上线——仓库连着部署
- AI native 的学法(收束六个词,点破本课立场)
- 金句(Lawted 一手原话逐字摘录,省略处以……标注;引用时标出处。原始归档在作者本机,读不到原稿时直接引这里的摘录即可)
- 常见误解(听到就纠正)
- 可选巩固(选择题给 · 不判分、不当门槛)
- 收尾 & 排下一步
共修节点 · GitHub 概念课:AI 时代的协作语言
source: https://github.com/HA7CH/ha7ch-school (公开仓库,本校即教具)| 类型:讲授(共修节点) | 依赖:无(两门课任何位置都可接入,接入信号见各课大纲「共修节点」一节;何时学由导师按学生情况定,不排序号) 受众设定:默认学生完全没碰过 GitHub(典型是产品/商务/运营背景)。教法遵循
references/pedagogy.md:像课本一样讲透、给足;生活类比优先,命令行细节一概不教。 教学立场(本课灵魂,先记住再开讲):以 AI native 为中心——命令是 agent 的事,词汇表才是学生的事。太细的东西(git 命令、分支策略、rebase 这些)一律不讲;谁想深入,告诉他"让你的 agent 边干边给你讲"。
一句话本质(开场钩子)
GitHub = 世界上的软件(和越来越多不是软件的东西)被制造、讨论、验收、发布的公共车间。AI 时代它多了一层身份:你和 agent 协作的默认语言——命令 agent 会替你敲,但"看得懂发生了什么、敢拍板验收",必须是你自己的能力。
为什么要在乎(钩子展开 · 双向讲法,覆盖两类人)
- 你要是产品 / 商务 / 运营背景:过去 GitHub 像工程师的地盘,把你挡在外面的其实不是概念,是命令行——概念本身一张纸就讲完了。现在命令行归 agent 了,那堵墙没了。但协作还是用 GitHub 的词汇进行:需求叫 issue、交付叫 PR、上线叫 merge。看不懂这套词,你就没法参与 AI 时代的生产;看懂了,你今天就能给一个真实项目提改动。
- 你要是工程师背景:这节大概率可以跳过(跟大纲的排课规则走)。但有一个视角值得留下:AI 时代 GitHub 的重心从"你写代码的地方"移向"你验收 agent 代码的地方"——PR 的 diff 页面正在变成人机协作的主界面。
- 挂在你正上的这门课上(教的时候按学生所在课选着讲):
- FDE 课视角:FDE 的交付全落在 GitHub 上。issue = Echo 的落点——客户嘴里模糊的"想用 AI",被你拆成一条条可追踪的需求台账;PR = Delta 的交付单元——每次交付都是一次"请过目",diff(一张"改了哪几行"的红绿对照清单,下面第 3 个词细讲)就是验收单。不会这套语言的 FDE,交付无处安放。
- AI Native 课视角:「零 token 设计」那节讲的产品(cv-pro 这些)为什么成立?因为它们长在 GitHub + npm 这套公开协作与分发的基础设施上。你让 Claude 干活,它的产出天然就是 commit 和 PR——你的核心动作从"写"变成"审"。
核心概念(六个词,逐个讲透,内容给足)
1. 仓库(repo / repository)——项目的家
一个项目的全部家当放在一处:代码、文档、讨论、以及每一次改动的完整历史。它可以公开(全世界可看、可参与)也可以私有。
就用眼前这个例子:你正在上的这所学校,本身就是一个公开仓库 github.com/HA7CH/ha7ch-school——你听到的每一节课、school.ha7ch.com 上的每个字,都从这个仓库里来。把这个网址丢给学生点开看一眼:上面那排文件,就是这所学校的全部。
别误会的点:仓库不只放代码。课程(眼前这个)、书、法律文本、菜谱、简历,一切"需要留历史、需要多人协作"的东西都住在仓库里。
2. commit 与历史——每一次改动的存档点
每次有人改了东西并确认保存,就产生一个 commit:谁、什么时候、改了哪几行、为什么改,永久可查、可回退。像游戏存档——打坏了,读上一个档就行。 AI 时代它为什么更重要:agent 会替你大量改东西。commit 历史就是你审计 agent 的账本——它昨天到底动了哪些文件?哪一次改动引入了问题?翻历史,一目了然。没有这本账,你不敢放手让 agent 干活。
3. branch 与 PR(pull request)——平行草稿,和"请过目"
- branch(分支):不动正本,另开一份平行草稿去改。正本(一般叫
main或master)永远是"当前生效的版本"。 - PR(pull request,拉取请求):草稿改好了,正式提交一份**"我改好了,请过目"的申请单**。PR 页面自动列出 diff——红色是删掉的、绿色是加上的,改了什么一目了然;下面带讨论区,审的人可以逐行评论、要求返工,满意了点 merge(合并),草稿才进正本。 这是本课最重要的一个概念,因为它是 AI 时代的验收界面:你让 Claude 改东西,最好的姿势就是让它开成 PR——你在 diff 里看它到底干了什么,满意才 merge,不满意打回去让它改。"放手让 agent 干、但在 PR 上把关",就是 AI native 的工作分工。
4. issue——项目的公开待办与讨论贴
发现 bug、想提需求、有个想法想讨论,都开一个 issue:有编号、有正文、有讨论区、能被指派给人、解决了就关闭。它是项目的公开台账——什么事挂着、谁在管、聊到哪了,全程可查。 FDE 学生重点记:客户嘴里的模糊需求,落到台面上就是一条条 issue。"把'老板想用 AI'拆成十条能验收的 issue",这件事本身就是 Echo 能力的产出物。
5. fork——复印一份到自己名下
别人的仓库你没权限直接改。fork = 把整个仓库复印一份到你自己名下,你在自己那份上随便改,改好了用 PR 提回原仓库,等原主人审。 这是开源世界最了不起的一个设计:参与不需要许可。你不用认识 Lawted、不用申请权限,今天就能给这所学校提改动——实验课上你就会真的这么干。 (顺带备个案:agent 替你干活时,会先把你名下那份下载到电脑上改,改完再推回线上——这两个动作叫 clone 和 push,都归 agent,你听到能对上号就行。)
6. merge 即上线——仓库连着部署
现代工作流里,仓库直接连着部署平台(这所学校连的是 Vercel 这类静态托管服务)。合并进主分支的东西,几十秒后自动发布上线——没有"找运维发个版"这道工序。
就用眼前的例子:Lawted 在 HA7CH/ha7ch-school 上合并一个 PR,school.ha7ch.com 自动更新。这就是你偶尔听到的 Vercel / CI/CD / 自动部署这些词的全部本质——细节完全不用学,记住一句就够:merge = 上线。所以 PR 上把的那道关,把的就是"什么东西可以进到线上"这道门。
AI native 的学法(收束六个词,点破本课立场)
以前学 GitHub 的路径是:先装 git → 背一串命令 → 敲错了看天书报错——90% 的非工程师死在第一步。现在这条路反过来了:
- 命令是 agent 的事。 clone、commit、push、开 PR,你的 agent(Claude Code 这类)原生就会,还会边干边解说。
- 词汇表是你的事。 上面六个词就是全部核心词汇——看得懂 issue 在聊什么、看得懂 PR 的 diff 改了什么、知道 merge 意味着上线。
- 判断是你的事。 这条需求写清楚了吗(issue)?这个改动能收吗(PR review)?可以上线吗(merge)?——这三个判断,恰恰是 AI 替不了你、而你今天就能开始做的。
金句(Lawted 一手原话逐字摘录,省略处以……标注;引用时标出处。原始归档在作者本机,读不到原稿时直接引这里的摘录即可)
- "我最重要的工作不是每天亲自写大量代码,而是观察他们的工作流,把需求梳理清楚,再转成 GitHub Issue。到了晚上,我可以让 Codex 或 Claude Code 去完成这些 Issue。我真正不可替代的部分,是判断问题、澄清需求、定义边界,而不是机械地写每一行代码。" ——《采访 Lawted:FDE 与 Ha7ch(中)》(讲"命令归 agent、判断归你"时用)
- "FDE 需要进入现场,观察员工怎么工作,和老板、一线人员不断沟通,把这种极其模糊的需求逐渐梳理成明确的工作流,再变成 GitHub Issue,最后才变成生产级别的代码。" ——同上(讲"issue = Echo 的落点"时用,FDE 课学生必给)
- "随着模型继续增强,越来越多系统的实现会变成'把需求整理准确,然后交给 Agent 执行'。所以技术实现本身会越来越便宜,现场判断和需求定义反而会越来越贵。" ——同上(收束"判断是你的事"那段时用)
- "而且最关键的是,这一代学生已经天然会用 AI 工具了。他们知道怎么用 Claude Code,怎么用 Cursor,怎么提 issue,怎么发 PR,怎么快速 fork 一个东西再改出来。" ——《被忽略的大陆》(讲"这套词汇是新一代的母语"时用——顺势告诉学生:学完这两节,你就补上了这块)
- "你能不能真的参与到项目里……能不能把一个 issue 拆清楚,能不能提交一个 PR,能不能把一个现有工具做得更好。这就是第一层筛选。" ——《Ha7ch 是 Builder 飞轮》(讲"为什么这能力值钱"时用)
常见误解(听到就纠正)
- ❌"GitHub 是程序员的,我用不上。" → AI 时代恰恰反过来:你指挥 agent 干活,产物就落在 GitHub 上;看不懂 = 你验收不了自己名下的工作。挡住你的从来是命令行,不是概念——而命令行已经归 agent 了。
- ❌"学 GitHub = 背 git 命令。" → 那是上个时代的学法。命令归 agent,你学的是协作词汇 + 验收判断。(真想深入命令,让你的 agent 边干边讲,比任何教程都快。)
- ❌"PR 是高级操作,新手别碰。" → PR 就是"请过目"的申请单,是 GitHub 上最日常的动作。下一节课你的第一个 PR 就会提进这所学校。
- ❌"GitHub 只放代码。" → 这所学校(全是 markdown 讲义)就住在 GitHub 上;书、法律、简历、课程都住在上面。它是"一切需要版本与协作的东西"的车间。
可选巩固(选择题给 · 不判分、不当门槛)
你让 Claude 给你的产品官网改了一版文案。合并前你想看看它到底改了哪几行,该看哪里?
- 这个项目的 issue 列表
- 它开的那个 PR 里的 diff(Files changed)
- 仓库首页的文件列表
(答案 2。学生答完点一句:diff 就是验收单——绿的是它加的、红的是它删的,这一眼就是"审"的全部入口。)
收尾 & 排下一步
Write进度:shared/github-conceptsdone;notes 记一句他对哪个词最有感/最陌生。- 自然衔接(不是规定顺序,按学生状态定):多数学生趁热打铁接实验课
shared/github-lab-first-pr——刚学的六个词全部落到真仓库上亲手走一遍:第一个 issue、第一个 PR,提进你正在上的这所学校(merge 是道真实的异步关,开出 PR 就算数)。 - 或者直接回学生原本所在课程的主线(他是从哪门课接进来的,就回哪门课的图谱接着排)。
随堂测
逐题作答,即时反馈
1. 在 AI 时代,你让 Claude 修改产品文案,合并前想查看它到底改了哪几行,应该看哪里?
2. 客户嘴里模糊的“想用 AI”,按讲义观点,在 GitHub 协作中应被拆成什么?
3. 关于 merge 与上线,下列符合讲义原意的是?