GitHub Flow 是什麼?
很多人要改同一堆程式碼,又不能互相砸到。這是大家講好的那套規矩。
去旁邊開一條便道,修好再接回來
就這一件事。剩下的全是為了讓這件事順利發生。
為什麼要有規矩?
因為程式碼是大家共用的一份。
沒有規矩的話,每個人都在同一份上面亂改。
三個人同時改同一個檔案,誰存檔晚誰覆蓋誰。 有人改到一半就下班了,程式壞在那裡,全隊都不能動。 而且沒人知道是誰、為什麼改的。
每個人在自己的線上改,改壞了也只壞自己那條。 改好了要先給人看過才能合回去。 每一次改動都留下「誰、為什麼、誰看過」。
兩個地方,分得很清楚
客人隨時會進來,所以它必須永遠是好的。 你不會把貨架拆一半就去吃飯。
你在這裡拆、裝、試、失敗、重來,客人一點都看不到。 弄好了再推出去店面。
畫出來長這樣
← 左右滑動可以看完整張圖 →
綠線從頭到尾沒斷過——這就是重點。
藍線是你的工作間,合回去之後就可以拆掉了。
實際走一圈
fix-readme-typo。從這一刻起,你怎麼改都不會碰到店面。整套規矩,濃縮成兩條
任何時候從 main 拉下來,它都應該跑得起來。 所以做到一半的東西絕對不進 main——這就是為什麼要有分支。
就算你一個人做專案也一樣。因為 PR 留下的不只是程式碼, 還有你當時為什麼這樣改——三個月後回來看的人是你自己。
PR 不只是把東西搬過去
它同時是三樣東西。這是很多人一開始沒看出來的地方。
針對某一行程式碼吵架的地方,比在聊天室貼截圖清楚一百倍。
測試沒過、沒人同意,就合不進去。機器和人都在這裡把關。
半年後有人問「這行為什麼長這樣」,答案就在當年那張 PR 裡。