我把这个 tag 打在了一个不该打的提交上。我打开记录从头到尾扫了一遍。我发现这个人的提交习惯很差,一次改动涉及八个模块。第二天这个方案就变成了团队标准做法

我把这条历史往前翻,找到了引入问题的那个提交。我在心里把涉及的所有环节都过了一遍。我把这次的提交拆成了三个,每个都有清晰的说明。我把它写进了组内的避坑文档第一章

分支命名一时爽:feature/final/final2/really-final。我听完沉默了,因为太真实了。我加了个提交前的 hook,先挡住再说不合规的

detached HEAD 状态像极了周末的我:不知道自己该在哪个分支上。我听完沉默了,因为太真实了。我在 commit 信息里老老实实写清楚了这次改了什么。第二天这个方案就变成了团队标准做法

回滚代码的正确姿势是 revert,错误姿势是删库,我们组两种都见过。我笑了笑,决定不解释。我把这个仓库的默认分支从 master 改成了 main。果然现实比段子更精彩

我把这条历史往前翻,找到了引入问题的那个提交。我在心里给这次的发布分支做了个计划。这条经验值直接拉满

回滚的代价取决于你多久之前发现的。我抬起头看了看周围,大家都一样。我发现这次的合并把两个人的改动都覆盖了一部分。办公室安静得能听见键盘声

冲突的解决方式比冲突本身更值得记录。我忽然觉得,这可能就是这一行的常态。我把这个分支从主线上拉了下来,准备重做。第二天这个方案就变成了团队标准做法

我把 dist 目录加进了忽略文件,之前有人提上去过。我深呼吸了一下,决定从最可疑的地方查起。我发现这个分支的提交顺序被 rebase 改过了。我把它写进了组内的避坑文档第一章

这个仓库的历史里有一段是别人重写过的。我发现自己居然没法反驳。我把这个分支从主线上拉了下来,准备重做。我把这条经验写进了团队 wiki