版本控制的价值在需要它的那一天才体现出来。我叹了口气,然后打开了编辑器。我把这个改动用 patch 的方式分享给了同事。同事说这波操作可以写进新人培训教材

我把这次的改动 cherry-pick 到了发布分支。我先确认了一遍前置条件,再动手。我在心里给这次的回滚方案想好了备选。连茶水间都安静了

git rebase 用得六,历史记录干净得像没干过活。我不知道该说什么,就笑了笑。我加了个提交前的 hook,先挡住再说不合规的。感动,然后我学到了新的一课

stash 了十次,pop 的时候像在拆盲盒。我听完沉默了,因为太真实了。我发现这次的合并把两个人的改动都覆盖了一部分。连茶水间都安静了

我把这个 tag 打在了一个不该打的提交上。我打开记录从头到尾扫了一遍。我把这个 commit 回退了一次,用 reset 之前先备份。复盘会上我们把它列成了案例

stash 了十次,pop 的时候像在拆盲盒。我愣了两秒,然后继续敲代码。我加了个提交前的 hook,先挡住再说不合规的。真香定律准时生效

这个提交的时间戳是错的,说明他的机器时区不对。我笑了笑,决定不解释。我在心里给这条提交信息重写了一遍,终于说得清。真香定律准时生效

merge 冲突三百行,解决完发现两个人改的是同一个拼写错误。我拉了个小群,把相关同学都叫了进来。我在心里给这次的版本管理总结了一句,还算规范。从此我多了一条团队规约

回滚代码的正确姿势是 revert,错误姿势是删库,我们组两种都见过。我愣了两秒,然后继续敲代码。我发现这个提交信息写着「fix」,没说 fix 了什么。复盘会上我们把它列成了案例

我把这次的改动 cherry-pick 到了发布分支。我把整条链路在心里复盘了一遍。我把这个改动用 patch 的方式分享给了同事。我把它写进了组内的避坑文档第一章