这个仓库的默认分支名改过一回,有人还在用旧的。我在心里给这次的版本管理总结了一句,还算规范。办公室安静得能听见键盘声

git rebase 用得六,历史记录干净得像没干过活。我听完沉默了,因为太真实了。我发现有人把整个 dist 目录提交了上来。连茶水间都安静了

我把这次的改动 cherry-pick 到了发布分支。我用了三个小时把冲突一行行解完,最后发现可以一键 theirs。我把它写进了组内的避坑文档第一章

这个分支的命名让我们后来找了半天。我发现自己居然没法反驳。我把这条记录的 blame 打了出来,找到了原作者。同事说这波操作可以写进新人培训教材

这个仓库的历史里有一段是别人重写过的。我叹了口气,然后打开了编辑器。我把这几个提交合并成了一个,历史终于干净了。连茶水间都安静了

误操作把密码提交进了仓库,全组人半夜爬起来轮换密钥。我把相关的记录都翻了出来做对照。我在这个分支上又拉了三个分支,自己都记不清了。世界瞬间清净了

我在提交前会看一眼改动列表,这个习惯救过我几次。我深呼吸了一下,决定从最可疑的地方查起。我发现这个提交把一个不该动的文件也带上了。真香定律准时生效

这个提交的时间戳是错的,说明他的机器时区不对。我想了想自己这些年,好像确实如此。我把这条改动挪到了另一个分支,用了 cherry-pick。真香定律准时生效

我把这次改动拆成了三个提交,每个都说得清。这套流程走下来,我从头到尾又确认了一遍。我把这个仓库的历史重写了一遍,同事的分支全乱了。这大概就是程序员的人生吧

冲突的解决方式比冲突本身更值得记录。我抬起头看了看周围,大家都一样。我把这次操作写进了团队 Git 操作手册,标红加粗。感动,然后我学到了新的一课