1. 程式人生 > >深入理解 GitHub Flow

深入理解 GitHub Flow

GitHub Flow 是一個輕量級,基於分支的工作流,支援團隊和專案的定期部署。本指南介紹了 GitHub Flow 的工作原理。

Step 1. 建立分支(Create a branch)

1

當你操作一個專案的時候,無論其他協作者做什麼,你都可以在特定的分支上實現自己的想法。也就是說,分支的存在是幫助你管理這些工作流。

在你建立了一個專案的分支的時候,你也就建立了一個可以嘗試你的新想法的環境。在分支上做的更改不會影響master分支,所以你可以自由地進行實驗和提交更改,這些操作都是安全的。當然,只有你完成的程式碼被協作人審閱並通過的時候,才可以被合併。

提示(ProTip)

分支是 Git 中的核心概念,而且整個 GitHub Flow 也是基於此的。在這裡,只有一條規則,那就是:master分支中任何內容都是可以被展開的。

正因為如此,新分支在實現一個功能或修復一個程式的時候是非常重要的。你的分支名稱應該具有描述性(例如,refactor-authenticationuser-content-cache-keymake-retina-avatars),以便其他人通過分支名稱就可以知道它到底是幹什麼用的。

Step 2. 新增提交(Add commit)

2

只要你建立了分支,就說明你要對它進行修改啦!無論新增、修改、還是刪除檔案,你都必須進行提交,將它們同步到你的分支上。當你在分支上工作的時候,這些提交操作可以跟蹤你的工作進度。

提交操作也建立一個關於你工作的透明歷史,通過檢視這些提交記錄,其他人可以知道你做了什麼和為什麼這麼做。每個提交操作都有一個相關的提交資訊(Commit messages),用於描述你做出的修改。此外, 每一個提交操作都被視為一個“修改單元”。如果發現了 bug 或者決定走不同的開發方向,你也可以通過這些“修改單元”進行回滾操作。

提示(ProTip)

提交資訊非常的重要,特別是當你將修改的內容提交到伺服器之後,Git 可以追蹤到你的修改內容並展示它們。通過寫清楚的提交資訊,你可以讓其他人更容易跟上我們的思路並提供反饋。

Step 3. 提出 Pull 請求(Open a pull request)

3

Pull 請求開啟了一個關於你的提交內容的討論。因為他們與底層 Git 倉庫緊密整合,所以如果他們接受你的請求,任何人都可以準確地看到合併的變化。

你可以在開發過程中的任何時候提出一個 Pull 請求:當你有很少或沒有程式碼但想分享一些截圖或一些想法的時候;當你卡住了需要幫助或建議的時候;或者當你準備好了讓人來審查你工作的時候。在你寫 Pull 請求資訊的時候,通過使用 GitHub 的@mention system,你可以向特定的人或團隊反饋問題,無論他們在你身邊還是在 10 個時區之外。

提示(ProTip)

Pull 請求對於促進開源專案和管理共享庫的更改非常有用。如果你使用Fork & Pull Model,Pull 請求提供一種方式來通知工程維護人員關於你希望他們考慮的變化。如果使用Shared Repository Model,則在將它們合併到主分支前,Pull 請求幫助啟動程式碼審查和有關更改建議的會話。

Step 4. 討論和評估你的程式碼(Discuss and review your code)

4

當你提出 Pull 請求的時候,審查你的更改內容的人或團隊可能有一些問題或者意見。也許你的編碼風格與專案規範不符,或者缺少單元測試,也有可能所有的東西看起來都很棒,條理清晰。Pull 請求的目的就是鼓勵和捕捉這種型別的對話。

你也可以在大家討論和給出關於你提交內容的反饋時,繼續 Push 你的分支。如果有人評論說你什麼沒有做,或者程式碼中有 bug,你也可以及時把它修復,然後 Push 這些修改。GitHub 將會給你展示出最新評論和反饋,你也可以在 Pull 請求的檢視中統一接收這些訊息。

提示(ProTip)

Pull 請求的評論是用 Markdown 編輯的,因此你可以在評論中嵌入圖片、表情符號、使用預格式化文字塊,以及其他輕量級的格式。

Step 5. 部署(Deploy)

5

只要你的 Pull 請求被審查並且通過了你的測試,你就可以部署這些修改,在生產環境中驗證她們。如果分支發生了問題,你也可以回滾到之前的狀態。

Step 6. 合併(Merge)

6

現在, 你修改的內容已經在生產環境中驗證了,是時候將你的程式碼合併到master分支啦!合併之後,Pull 請求就儲存了一份關於你修改程式碼的歷史記錄。因為它們是可搜尋的,所有任何人都可以通過搜尋瞭解你為什麼這麼修改以及如何修改的。

提示(ProTip)

通過將某些關鍵字加入到你的 Pull 請求文字中,你可以將問題與程式碼關聯起來。當你的 Pull 請求被合併時,相關問題也將被關閉。例如,輸入短語Closes #32,將關閉倉庫中序號為 32 的問題。此外,可以通過我們的「幫助文章」,瞭解更多的資訊,

最後,附上博主的 GitHub 賬號,歡迎大家 Follow維C果糖