我的Git操作曾经只有三板斧:add、commit、push。出问题了?整库删掉重新clone。这种「删库疗法」我用了五年,直到某天手滑把没备份的本地分支一起扬了。
Git的恐怖之处在于,它给你无数种搞砸的方式,却只给零散的逃生通道。我长期只认三条命令,不是不想学,是怕——怕那些flag和rebase把我仅有的工作成果卷进黑洞。
转机发生在去年。同事看我又要删库,甩给我一句:「你这是在用打火机修核电站,能亮就行。」他指了指我的终端,里面躺着8个我从没碰过的命令:stash、reflog、cherry-pick、bisect、rebase -i、worktree、reset --soft、switch。
现在我的workflow彻底变了。stash救过我好几次「改到一半被叫去开会」的烂摊子;reflog让我从误删的commit里捞回过三天的代码;bisect更是debug时的时光机,二分法定位bug比人工排查快十倍不止。
最讽刺的是reset --soft。以前我以为reset是自杀按钮,现在它成了我的后悔药——撤回commit但保留改动,相当于把「发送」变成「存草稿」。换句话说,这8个命令不是给Git高手准备的,是给曾经的我这种「删库型选手」的救生艇。
上周我把这套流程分享给组里新人,他看完沉默半晌:「所以你之前五年都在手动版本控制?」我没接话,默默给他发了个reflog的文档链接。
热门跟贴