这个分支的命名让我们后来找了半天。我发现自己居然没法反驳。我在心里给这次的回滚方案想好了备选。好在最后有惊无险

这个分支上有一半的提交是「临时保存」。我停了一下,然后继续手上的活。我发现这个冲突有六个文件,每个都要手动选。我沉默了,但心里是服的

回滚的代价取决于你多久之前发现的。我想了想自己这些年,好像确实如此。我把这条记录的 blame 打了出来,找到了原作者。真香定律准时生效

这个分支已经落后主线一百多个提交了。我停了一下,然后继续手上的活。我把这条历史记录往前翻,找到了引入问题的提交

我把这个 tag 打在了一个不该打的提交上。我打开记录从头到尾扫了一遍。我在这个分支上又拉了三个分支,自己都记不清了。世界瞬间清净了

版本控制最怕的不是冲突,是有人强行推。我发现这次合并带来了很多不该有的改动。这条经验值直接拉满

这个分支的命名让我们后来找了半天。我叹了口气,然后打开了编辑器。我在 commit 信息里老老实实写清楚了这次改了什么。复盘会上我们把它列成了案例

detached HEAD 状态像极了周末的我:不知道自己该在哪个分支上。我笑了笑,决定不解释。我把 git reflog 打开,从悬崖边上把自己捞了回来。真香定律准时生效

合并的策略决定了历史的形状,也决定了排查的难度。我听完沉默了,因为太真实了。我发现这个提交把一个不该动的文件也带上了。复盘会上我们把它列成了案例

我把这次改动拆成了三个提交,每个都说得清。我把手上的资料翻出来又读了两遍。我把这个 tag 打在了错误的提交上,又删了重打。幸好之前留了备份