你有沒有遇過一個情況是雖然送了 PR ,但卻不想要 Merge ,這在實務上很有可能發生,本文說明如何在 GitHub 上使用 WIP 避免 Merge 的動作。
什麼是 WIP
WIP 是 work in progress 的縮寫,表示還在進行中的工作。
如果 WIP 出現在 PR 的標題時,代表這個 PR 還未完成,不想要被 Merge 進目標的分支中。
GitHub 上使用 WIP
在 GitHub 上要使用 WIP 很簡單,只要安裝 WIP 的 GitHub app 就可以在 repo 上使用。
只要選擇 Free 方案就好,它就會有完整的功能,如果你想要支持開發者也是可以選擇付費方案的。
使用方式
沒有加上 WIP 的 PR 是可以隨意 Merge 的。
當有 PR 是不想要被 Merge 的時候,只要在 PR 的標題加上 WIP 的字樣就行了,一般會加在最前面方便辨識。
如此一來就不會有人不小心按到 PR 使不想進目標分支的程式碼 Merge 了。
擁有管理員權限的帳號還是可以 Merge ,要特別注意。
場景
我們可以在任何需要的時候使用 WIP ,這裡舉三個例子:
- 前端工程師完成了前端的開發工作後送出 PR ,但由於後端 API 還未開發完成,避免只 Merge 前端的代碼而發生問題,在此 PR 上加入 WIP 。
- 開發完功能後送出 PR ,同事發現功能或設計上的問題並給予回饋,這時可以使用 WIP ,待問題修復後在刪除 WIP ,達到控管的目的。
- 為了詢問其他同事程式上的寫法或設計,可以先送帶有 WIP 的 PR 到 upstream 上供同事間討論程式碼。
結論
在 PR 上靈活的使用 WIP 可以使開發更為順暢,也可以避免不小心 Merge 的問題。