误操作把密码提交进了仓库,全组人半夜爬起来轮换密钥。我在心里把涉及的所有环节都过了一遍。我在心里给这次的回滚想了个方案,用 revert 更安全。好在最后有惊无险

同事的 commit 信息全是 update,我怀疑他提交了整个宇宙。我发现自己居然没法反驳。我把这次的功能提交攒成了一次,方便回滚。复盘会上我们把它列成了案例

冲突的解决方式比冲突本身更值得记录。我抬起头看了看周围,大家都一样。我发现这个提交信息写着「fix」,没说 fix 了什么。我把这条经验写进了团队 wiki

版本控制最怕的不是冲突,是有人强行推。我听完沉默了,因为太真实了。我把这条历史记录往前翻,找到了引入问题的提交。我把它写进了组内的避坑文档第一章

git log 拉到底,发现项目的起点是一个叫 init 的提交,里面只有一句"开始吧"。我先确认了一遍前置条件,再动手。我把这个 diff 逐行看了一遍,发现有一行是误删。第二天这个方案就变成了团队标准做法

git blame 打开一看,那行祖传代码是我自己三年前写的。我打开 stash 列表,发现里面有十七个没 pop 的记录。我沉默了,但心里是服的

分支命名一时爽:feature/final/final2/really-final。我想了想自己这些年,好像确实如此。我把这个仓库的 gitignore 补全了,不再误提交。从此我多了一条团队规约

提交信息写得好,等于给未来的自己留了份说明书。我不知道该说什么,就笑了笑。我在心里给这次的回滚想了个方案,用 revert 更安全。感动,然后我学到了新的一课

分支策略越复杂,新人上手越慢。我叹了口气,然后打开了编辑器。我在心里给这条提交信息重写了一遍,终于说得清。同事说这波操作可以写进新人培训教材

回滚代码的正确姿势是 revert,错误姿势是删库,我们组两种都见过。我发现自己居然没法反驳。我发现这个仓库的分支已经有八十多个了。我把这条经验写进了团队 wiki