登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
为什么我就想要「线性历史 + Signed Commits」,GitHub ...
为什么我就想要「线性历史 + Signed Commits」,GitHub 却把我当猴耍 ️
[ 复制链接 ]
但婆
2026-2-28 19:35:03
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
【开场】
欢迎收听今天的节目。
今天主题很简单,也很不人类——
我他妈就只想要两件事。
第一,主分支历史是线性的。git log 打开来,我看的是一条时间线,不是在读心电图找节奏,不是在欣赏抽象画,就他妈是一条直线。
第二,我的每个提交都是我本人签的。GitHub 上给我乖乖显示绿色
Verified
,不要动不动整成灰扑扑的
Unverified
,看着像犯罪现场,像我交了一份伪造证据。
就这两件事,说出来一句话都不到。
然后 GitHub 端着一张"工程最佳实践代言人"的臭脸,递给你三个按钮:
Merge、Squash、Rebase
。
你以为你在选合并策略。
你他妈其实是在选——
签名以哪种姿势死去。
【第一段:先把真相拍你脸上,别怪我没说】
在骂那三个按钮之前,有一件事得先讲清楚,不然后面你会听得一头浆糊。
签名签的不是「改动内容」,签的是「commit 这个对象本身」。
commit 对象里装的东西,远不止你改了哪些文件。还有:父提交是谁、作者是谁、提交者是谁、时间戳是几点几分几秒。
你但凡动了里头任何一个字段——哪怕就换了个提交者名字,哪怕就多了一毫秒的时间戳偏差——这他妈就不是同一个 commit 了。SHA 会变,建立在旧 SHA 上的签名,直接废了,不留情面,不接受解释。
换句话说:你以为你签的是「代码」,你他妈实际签的是「这坨数据的身份证」。身份证号换了,原来那张验证复印件就是一张废纸,扔了吧。
数学不讲情面,Git 更不讲。
把这个刻脑子里,后面你才能看懂 GitHub 到底在对你干什么。
【第二段:三个按钮,用「签名视角」逐个解剖】
好,现在我们来看 GitHub 给你的那三个「选择」。
为什么每一个都像在嘲笑你,为什么每一个都在用不同方式把你的签名送走。
① Create a merge commit — 老派,但起码他妈没在骗你
这是最传统的方式,也是最诚实的方式。
它不重写你 PR 分支上的提交。你那些 commits 还是原来那些 commits,SHA 不变,签名大概率也就还活着。
代价是什么?主分支历史出现一个 merge 节点,不线性,git log 看起来像蜘蛛网。
GitHub 这时候语重心长地说:你不是想要线性历史吗?那你别用这个哦。
行,人类想要「干净」,就得先交出一样东西。我他妈到底在做什么取舍?
② Squash and merge — 产品经理最爱,签名最大的幻觉
这个方式非常「表面和谐」:把你 PR 里一串 commits 全揉成一个新提交,主分支线性,历史干净,看起来什么坏事都没发生过。
然后你发现那个 squash commit 上还挂着绿色
Verified
。
你一激动,以为签名保住了,以为事情没那么糟。
醒醒,你他妈被哄了。
那个 Verified 往往是 GitHub 给
它自己新造出来的那个 commit
盖的章。不是「保留了你的签名」,是「我帮我自己签了一个,顺便把你的全扔掉了,你慢慢玩」。
你原来那一串提交根本没进 main,它们签没签,对主分支来说已经是前任的故事,不重要了,随它去吧。
GitHub 在帮它自己 Verified,然后把这个绿勾勾展示给你看,你还在那感激涕零。
③ Rebase and merge — 线性历史的诱惑,签名最大的坟场
这是三个里面
最阴险的一个
,没有之一。
它看起来完美满足你的线性洁癖——把 PR 里每个 commit 在 main 顶端重放一遍,一条直线,漂亮,优雅,干净。
然后你去看每个「重放出来的」commit:SHA 全变了。
新 commits = 新 SHA
新 SHA = 旧签名直接作废
复制代码
就这么简单,就这么操蛋。
你可能要问:我他妈明明已经提前把分支 rebase 到 main 最新 HEAD 了,为什么 GitHub 按那个按钮还要改我的 SHA?
因为它按下去的时候,根本
不是在「尊重你已经做好的工作」
。它走的是自己内部的一套 rebase 流程,重建对象、更新 committer 元数据,不管你之前做没做过,到它手里,SHA 一律重造,你之前的努力,当它没发生过。
签名丢了还不算完。最他妈绝的是:
GitHub 没有你的私钥。
它没法替你把那串新 commits 重签。能力不够,没有办法,爱莫能助。它能做的就是挂一个冷冰冰的
Unverified
上去,再配合 vigilant mode,给你贴一个「可疑提交」的标签,像给你挂了个嫌疑人胸牌。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
为什么
想要
线性
历史
Signed
相关帖子
pgvector语义检索踩坑:为什么加了 ORDER BY 反而查不到数据?
AI为什么会撒谎——一个律师被ChatGPT骗了
为什么我拖了一个多月才开始使用OpenClaw?(附接入飞书完整详细教程,新手必看)
为什么 PHP 闭包要加 static?
java String为什么不可变
为什么 AI 能赢世界冠军,却开不好车?——一条藏在所有 AI 背后的分界线
Xstream历史漏洞审计
Vue 表单避坑:为什么 v-model 绑定对象属性会偷偷修改父组件数据?
为什么很多技术人越努力,越没价值?
006:RAG 入门-面试官问你,RAG 为什么要切块?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
pgvector语义检索踩坑:为什么加了 ORDER BY 反而查不到数据?
4
385
龙正平
2026-02-28
业界
AI为什么会撒谎——一个律师被ChatGPT骗了
0
356
馏栩梓
2026-03-01
业界
为什么我拖了一个多月才开始使用OpenClaw?(附接入飞书完整详细教程,新手必看)
7
1014
俏襟选
2026-03-03
业界
为什么 PHP 闭包要加 static?
1
163
鞠古香
2026-03-05
业界
java String为什么不可变
4
882
髡芯
2026-03-05
业界
为什么 AI 能赢世界冠军,却开不好车?——一条藏在所有 AI 背后的分界线
1
592
方方仪
2026-03-05
业界
Xstream历史漏洞审计
0
7
讲怔
2026-03-06
安全
Vue 表单避坑:为什么 v-model 绑定对象属性会偷偷修改父组件数据?
0
110
乳杂丫
2026-03-07
业界
为什么很多技术人越努力,越没价值?
0
29
柏雅云
2026-03-08
业界
006:RAG 入门-面试官问你,RAG 为什么要切块?
0
67
梦霉
2026-03-10
回复
(4)
祉遛吾
6 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
这个有用。
庾签
3 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
鞍注塔
前天 11:22
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
港髁
昨天 10:09
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
但婆
昨天 10:09
关注
0
粉丝关注
15
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
韶又彤
9912
6
宋子
9880
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9869
10
遗憩
10006
查看更多
今日好文热榜
211
搭建数据库服务高可用架构
283
2026卫生高级职称备考:卫生高级职称考试历
26
公司新招了个 5 年 Java,开工第一天就被劝
331
opencalw平替之nanobot 源码解析(一):环
978
【节点】[SceneDepth节点]原理解析与实际应
417
【节点】[SceneDepth节点]原理解析与实际应
757
"给我发个200元红包":一条群消息背后的 AI
476
使用 C++ 模拟 ShaderLanguage 的 swizzle
67
006:RAG 入门-面试官问你,RAG 为什么要切
290
Stanford-CS336-Lecture-02 Pytorch
325
【FAQ】HarmonyOS SDK 闭源开放能力 —Push
883
openclaw本地部署接入飞书教程(最细保姆版
452
文本生成任务评估指标
162
基于碳陶材质的制动系统升级方案:F80/F82
369
windows系统本地安装部署openclaw详细版教
949
一小时手搓轻量级可代替 Qdrant 的向量数据
139
一小时手搓轻量级可代替 Qdrant 的向量数据
252
LeetCode 236 二叉树的最近公共祖先:pytho
486
LeetCode 124 二叉树中的最大路径和:pytho
290
我把一个生产Bug的排查过程,交给AI处理—