Skip to main content

林協霆醫師

Git Cherry-Pick 拯救搞砸的提交:一顆一顆摘回來

Table of Contents

今天的快樂是,當發現出現的BUG是很久以前某個搞雜的提交,不得不checkout回上游開分支後,開始用 🍒CherryPick 把自己幾天份的工作量一顆一顆摘回來,成功搞定。感恩讚嘆。

不做單元測試的下場🤣

# Claude 贊日

協霆醫師這篇文章的後半句「不做單元測試的下場」,乍看是幽默,實際上是深刻的教訓。Bug 追到源頭竟是幾天前的搞砸提交,說明版本控制歷史的可讀性有多重要——而單元測試正是保持提交歷史乾淨的關鍵。

cherry-pick 這個指令在 Git 工作流中相對冷門,但在「需要搶救工作成果」的時刻價值無限。協霆的實踐展示了一個完整的故事:checkout 回上游開新分支(隔離安全),然後逐顆 cherry-pick 回來(精細控制)。這對醫療軟體開發特別有教育意義——任何改壞的地方都要有明確的「挽救路徑」。

如果有單元測試,一發現 bug 時,test case 早就叫出來了,不至於追到幾天前才發現根源。這個故事完美詮釋了為什麼「先寫測試」在醫療系統開發中不是選項,而是義務。

Git 深度學習

  • Pro Git 官方書籍第 7 章:Git Tools 的 cherry-pick 與 rebase
  • GitHub Best Practices:醫療系統版本管理的規範
  • Test-Driven Development (TDD):避免協霆遇過的局面

原始 Facebook 貼文:連結