视频加载失败

你怎么能直接 commit 到我的 main 分支啊!?—— 一个抖音视频引出的 Git 协作规范指南

1740 字
9 分钟
你怎么能直接 commit 到我的 main 分支啊!?—— 一个抖音视频引出的 Git 协作规范指南

抖音上刷到 Antidote 的一个视频,用鸣潮角色西格利卡吐槽: “你怎么能直接 commit 到我的 main 分支啊?!”

笑完之后发现,这一连串吐槽其实把 Git 协作的最佳实践串了个遍。整理一下,既是备忘,也当科普。


🎬 先看原片台词#

你怎么能直接 commit 到我的 main 分支啊?!GitHub 上不是这样!

你应该先 fork 我的仓库,然后从 develop 分支 checkout 一个新的 feature 分支,比如叫 feature/confession。

然后你把你的心意写成代码,并为它写好单元测试和集成测试,确保代码覆盖率达到 95% 以上。

接着你要跑一下 Linter,通过所有的代码风格检查。

然后你再 commit,commit message 要遵循 Conventional Commits 规范。

之后你把这个分支 push 到你自己的远程仓库,然后给我提一个 Pull Request。

在 PR 描述里,你要详细说明你的功能改动和实现思路,并且 @ 我和至少两个其他的评审。

我们会 review 你的代码,可能会留下一些评论,你需要解决所有的 thread。

等 CI/CD 流水线全部通过,并且拿到至少两个 LGTM 之后,我才会考虑把你的分支 squash and merge 到 develop 里,等待下一个版本发布。

你怎么直接上来就想 force push 到 main?!GitHub 上根本不是这样!我拒绝合并!


🔧 逐条拆解这些术语#

1. Git 分支模型#

术语说明
main主分支,项目的”正式发布版”,一般情况下不允许直接在上面提交。
develop开发分支,日常集成的目标。新功能从 develop 分出来,开发完成后合并回来。
feature 分支功能分支,从 develop 拉出,命名如 feature/login、feature/confession。互不干扰。
fork把别人的仓库复制到你自己的 GitHub 账户下。你在 fork 里随便改,不影响原项目。改好了再通过 PR 把改动”喂回去”。
squash and merge把 feature 分支上的多个小 commit 压缩成一个,再合并到 develop。保持主干历史干净得像新的一样。

💡 为什么不能直接 push main?

想象一下:你正在写期末论文,别人二话不说直接在你文档第一页改了几个字、删了两段——你还没保存前版本,找都找不回来。

force push 相当于:“别管你之前写了啥,现在这是我的版本了”。多人协作时这是大忌。

2. 代码质量工具#

Linter(代码风格检查工具)#

Linter 是一个自动检查代码规范的工具。它会抓出:

  • 变量没用到 → ❌
  • 缩进不对 → ❌
  • 少了分号 → ❌
  • 函数太长 → ⚠️
  • 有潜在 bug 的写法 → 🚨

常见 Linter:

语言Linter
JavaScript / TypeScriptESLint
PythonPylint、Flake8、Ruff
CSSStylelint
Go自带 gofmt,且 go vet 查深层问题
RustClippy

怎么用?

  • 编辑器方案(推荐新手):VS Code 装对应插件,写代码时自动红线提示,不用记命令。
  • 命令行方案:eslint 你的文件.js,跑一下就告诉你所有问题。

单元测试 & 集成测试#

类型测什么举例
单元测试最小代码单元(一个函数/方法)test_add() 验证 add(1,2) == 3
集成测试多个模块协同工作注册→发邮件→存数据库,整条链路通不通

代码覆盖率 95%:意味着你 100 行代码里有 95 行都被测试跑过。比例越高,代码越”安全”——但也别钻牛角尖追求 100%。

3. 协作规范#

术语含义
Conventional Commits提交信息的规范格式:类型(范围): 描述。如 feat(login): 添加短信验证码登录。类型有 feat(新功能)、fix(修 bug)、docs(文档)、refactor(重构)……
Pull Request (PR)你想让别人把你的代码合并进去——在 GitHub 上提交一个请求,等待审核。
Code Review其他人看你的代码,找出潜在问题、提出改进建议。
Thread评论中的讨论串。每一个评论就是一个 thread,**全部 resolved(解决)**后才能合并。
LGTMLooks Good To Me(我看行)。Code Review 通过的标准用语。通常需要至少 2 个 LGTM 才能合并。
@ 某人在 PR 里 @ 指定的人来审查。相当于在群里 @ 人:“快来看这个 PR!”

4. CI/CD(持续集成 / 持续部署)#

自动化的流水线。你 push 代码后,服务器自动跑:

  1. Linter → 代码风格检查
  2. 单元测试 → 所有用例是否通过
  3. 构建 → 项目能不能正常编译/打包
  4. 部署 → 通过后自动发布到线上

一套下来,人只需要写代码、等结果。


🚫 视频里的反面典型#

视频吐槽的核心行为是:

git commit -m "1111"
git push --force

—— 直接在别人的 main 分支上 强制覆盖推送。

评论区经典评论:

NaNw:“叽里咕噜说啥呢,git commit -m ‘1111’,git push —force”

zip8919:“这个 1111 还好,这个 force 吓哭了,我之前写的代码就是被别人 force 掉了”

磷葉:“对不起老大,我给 main 分支提交了八十个 G 的垃圾文件,不过不要担心,我已经及时 revert 了,就是拉代码的时候怎么卡卡的”

小小灰:“叽里咕噜说啥呢,公司就我一个开发,主分支就是我的工作分支”


✅ 正确的 Git 协作流程(简化版)#

你发现了一个有趣的仓库
│
▼
① Fork(复制到你的 GitHub 账号下)
│
▼
② git clone 你的 fork 到本地
│
▼
③ git checkout -b feature/xxx(创建功能分支)
│
▼
④ 写代码 → 写测试 → 跑 Linter
│
▼
⑤ git commit(遵循 Conventional Commits)
│
▼
⑥ git push 到你自己的远程仓库
│
▼
⑦ 提 Pull Request 到原仓库
│
▼
⑧ Code Review → 解决 Threads → CI/CD 通过
│
▼
⑨ Squash and Merge → 完成 🎉

🛠️ 新手常见问题#

Q: Linter 需要我单独安装软件吗?#

不需要单独装”Linter 软件”。

  • 如果用的 VS Code:装对应语言的扩展插件就行。比如写 JavaScript 装 ESLint 插件,写 Python 装 Pylint 插件——装好之后代码里直接红线标出问题,比 Word 的拼写检查还直观。
  • 如果用的 WebStorm / IntelliJ:自带 Linter 支持,开箱即用。
  • 如果你想在命令行用:npm install -g eslint(JS)、pip install pylint(Python)→ 然后 eslint 文件.js。

Q: 就我一个人开发,也需要这么麻烦吗?#

可以简化。但养成好习惯总是好的:

  • 至少用个 main + develop + feature 分支 的结构
  • commit message 写得清晰点(不用严格按规范,但别只写”1111”)
  • 千万别 force push 到 main

📺 原视频信息#

  • 作者:Antidote
  • 发布时间:2026-06-19
  • 点赞:4416 | 评论:148 | 收藏:2261
  • 标签:#编程 #GitHub #鸣潮 #西格利卡 #二创
  • 原链接:抖音视频

最后送大家一句评论区看到的真理:

“git push —force 之前,先想想这代码是不是只有你一个人在写。”

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

你怎么能直接 commit 到我的 main 分支啊!?—— 一个抖音视频引出的 Git 协作规范指南
https://www.douyin.com/video/7652767944237281243
作者
皮耶罗
发布于
2026-07-26
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
真正的朋友,不是认识得多,而是愿意真正了解你
哲学心理学从抖音视频《剑桥教授:现实版的邓布利多》整理而来:真正的友谊不是认识很多人,而是在现实相处中一起做事、持续了解彼此。
2
真正建势力的核心,根本不是拉拢人脉
管理术由抖音视频《尚书管理心法|真正建势力的核心,根本不是拉拢人脉》整理而来:先通过持续提供价值建立信用与影响力,再通过明确、可复制的制度把个人影响力变成组织能力。
3
给消费者一辆更快的马车?还是直接给一辆车?——"焦糖布丁理论"教你看清真正的需求
管理术整理抖音"老丁有异见"关于焦糖布丁理论(Jobs to Be Done)的解读:消费者购买商品不是为了拥有它,而是为了完成一项任务。把产品和任务分离,你才能真正看清你对手是谁、你的产品在满足什么需求、以及怎样写出最有杀伤力的文案。
4
合作从来不是靠自觉:从「三个和尚」看协作困境与出路
管理术由抖音视频《一把黄土✌️|合作从来不是靠自觉》整理而来:以经典动画「三个和尚」为切口,分析为什么人越多责任反而越模糊,以及真正可持续的合作需要「被看见的付出 + 被找到的责任 + 被放对的人」。
5
查理·芒格的人际断舍离:远离消耗你的人
哲学心理学根据抖音“人心小茶馆”一段关于查理·芒格处世智慧的播客视频转写整理:人会被身边的人慢慢同化,所以选择同伴,本质上是在选择自己的精神环境。
随机文章随机推荐
Profile Image of the Author
皮耶罗
在超市后门,和喜欢的故事一起短暂放空。
公告
这里记录了技术探索、日常反思和开源旅程。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
59
分类
16
标签
237
总字数
121,121
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录