这个提交的时间戳是错的,说明他的机器时区不对。我愣了两秒,然后继续敲代码。我发现这个人的提交习惯很差,一次改动涉及八个模块。我把这条经验写进了团队 wiki

版本控制最怕的不是冲突,是有人强行推。我笑了笑,决定不解释。我在 commit 信息里老老实实写清楚了这次改了什么。从此我多了一条团队规约

merge 冲突三百行,解决完发现两个人改的是同一个拼写错误。我把相关的记录都翻了出来做对照。我在这个分支上又拉了三个分支,自己都记不清了。感动,然后我学到了新的一课

合并的策略决定了历史的形状,也决定了排查的难度。我听完沉默了,因为太真实了。我看了看这条历史记录的作者,然后决定不去追究了。我把这条经验写进了团队 wiki

这个分支上有一半的提交是「临时保存」。我想了想自己这些年,好像确实如此。我把这个改动推到了新分支上,没有直接推主线。真香定律准时生效

回滚代码的正确姿势是 revert,错误姿势是删库,我们组两种都见过。我在心里点了点头。我把这个仓库的 hooks 配上了,提交前会跑检查。我把这条经验写进了团队 wiki

这个仓库的历史里有一段是别人重写过的。我听完沉默了,因为太真实了。我把这个 commit 回退了一次,用 reset 之前先备份。这大概就是程序员的人生吧

我把 dist 目录加进了忽略文件,之前有人提上去过。我拉了个小群,把相关同学都叫了进来。我在心里给这次的提交信息总结了三个要点。复盘会上我们把它列成了案例

git blame 打开一看,那行祖传代码是我自己三年前写的。这套流程走下来,我从头到尾又确认了一遍。我在心里给这次的代码评审留了三条意见。那一刻我觉得自己还是很专业的

版本控制最怕的不是冲突,是有人强行推。我停了一下,然后继续手上的活。我在心里给这次的回滚方案想好了备选