Commit 能記錄改動,但它無法保護你的團隊。這就是 Pull Request 存在的原因。
每個人都直接推 commit 上 master,看起來沒什麼問題——直到有一天,出事了。
↑ 哪一個 commit 讓整個系統壞掉了?你要花多久找出來?
Commit 是草稿。
PR 是整理好的簡報。
都能看,但哪一個
讓你更快理解發生了什麼?
技術上,commit 什麼都能做到——可以看、可以 revert。但當 commit 全部混在 master 裡, 要找問題、要回溯、要讓新成員理解,代價會隨著時間急速放大。
每個 PR 都有標題、描述、討論串。一個功能做了什麼、為什麼這樣做、當初有什麼爭議—— 三個月後回來看,一眼就清楚。
壞的程式碼在進 master 之前就被攔截。不需要等上線才發現問題, 也不需要在緊急時刻手忙腳亂地 hotfix。
PR 是完整的單位。出問題只需要 revert 那個 PR,乾淨俐落, 不會影響其他人的工作,也不會引發新的 conflict。
散落的草稿筆記。要自己串聯脈絡,出問題時要一條一條翻,revert 時容易誤傷其他 commit。
整理好的簡報。完整的功能單位,有說明有討論,revert 一個按鈕搞定,新人也能快速理解。
.github/pull_request_template.md 讓開 PR 有格式可依循