在 PR 時使用 WIP 避免 Merge

你有沒有遇過一個情況是雖然送了 PR ,但卻不想要 Merge ,這在實務上很有可能發生,本文說明如何在 GitHub 上使用 WIP 避免 Merge 的動作。

什麼是 WIP

WIP 是 work in progress 的縮寫,表示還在進行中的工作。

如果 WIP 出現在 PR 的標題時,代表這個 PR 還未完成,不想要被 Merge 進目標的分支中。

GitHub 上使用 WIP

在 GitHub 上要使用 WIP 很簡單,只要安裝 WIP 的 GitHub app 就可以在 repo 上使用。

wip-app

只要選擇 Free 方案就好,它就會有完整的功能,如果你想要支持開發者也是可以選擇付費方案的。

使用方式

沒有加上 WIP 的 PR 是可以隨意 Merge 的。

pr-title

當有 PR 是不想要被 Merge 的時候,只要在 PR 的標題加上 WIP 的字樣就行了,一般會加在最前面方便辨識。

pr-title-wip

如此一來就不會有人不小心按到 PR 使不想進目標分支的程式碼 Merge 了。

擁有管理員權限的帳號還是可以 Merge ,要特別注意。

場景

我們可以在任何需要的時候使用 WIP ,這裡舉三個例子:

  • 前端工程師完成了前端的開發工作後送出 PR ,但由於後端 API 還未開發完成,避免只 Merge 前端的代碼而發生問題,在此 PR 上加入 WIP 。
  • 開發完功能後送出 PR ,同事發現功能或設計上的問題並給予回饋,這時可以使用 WIP ,待問題修復後在刪除 WIP ,達到控管的目的。
  • 為了詢問其他同事程式上的寫法或設計,可以先送帶有 WIP 的 PR 到 upstream 上供同事間討論程式碼。

結論

在 PR 上靈活的使用 WIP 可以使開發更為順暢,也可以避免不小心 Merge 的問題。

參考資料