理解 Github Flow

文章轉載自:http://blog.csdn.net/whywhom/article/details/44672161


GitHub Flow 是一個非常輕便的,基於分支的工作流。非常適合代碼部署非常頻繁的團隊和項目。這裏這篇指南中咱們一起看看 Github Flow 好用在哪,如何來用。


創建一個分支

當你在開發一個項目的時候,一般在同一時刻你會同時開展多個想法,其中一些比較成熟了,另一些還是很初級。有了分支就可以很好的來進行管理了。

當你在項目中創建一個分支的時候,你正在搭建一個可以嘗試新想法的環境。你在新分支上所做的修改不會影響到主(master) 分支,所以你能自由實驗和提交修改。在被你的同事審覈之前,你的分支是不會被合併的,所以一切都是安全的。

深度技巧

分支是 Git 的一個核心概念,整個 GitHub Flow 也是基於它的。最重要的規則只有一個:主(master)分支上的任何內容都要保證是可部署的。

正因爲如此,當開發一個新功能或者修復錯誤的時候,你的新分支獨立於主分支是極其重要的。你的分支名應該見名知義( 例如,refactor-authenticationuser-content-cache-keymake-retina-avatars), 以便讓其他人知道你正在做什麼工作。



添加新版本

一旦你的分支創建好之後,就可以開始做些修改了。不論何時你添加,編輯或者刪除一個文件,你就做一個版本,然後把它們添加到你的分支中。 添加版本的過程就跟蹤了你在一個功能分支上的工作進展。

版本也爲你的工作創建了一個透明的歷史,其他人可以跟隨着去理解你所做的工作以及爲什麼要這樣做。每一個版本都有一條相關聯的版本信息, 版本信息是一段描述,解釋了爲什麼要做這樣一個特定的修改。此外,每一個版本都可以看作是一個獨立的修改單元。這樣如果你不小心改錯了,或者是改變了開發思路的時候,就可以來回滾修改了。

深度技巧

版本信息很重要,因爲一旦你的修改被推送到服務器上,它們會以一個一個版本的形式顯示。 通過書寫清楚的版本信息,你可以更容易讓其他人跟上你的思路並提供反饋。



開啓一個 Pull Request

Pull Request 用來發起對你做的各個版本的討論。因爲 Pull Request 與底層的 Git 倉庫代碼是緊密相關的,任何人都能確切地看到一旦他接受了你的 Pull Request 會有那些代碼合並進來

在開發過程中的任意時點,你都可以開啓一個 Pull Request:當你有很少或沒有代碼,但想要分享一些截圖或基本想法的時候, 當你陷入困境需要幫助和建議的時候,或者當你準備好讓他人審覈你工作的時候。通過在你的 Pull Request 信息中使用 GitHub 的 @mention 系統,你可以向特定的人或團隊請求反饋,不管他們就在大廳的那邊,還是離你有十個時區之遙。

深度技巧

Pull Requests 對貢獻開源項目和管理共享倉庫的變動是非常有用的。若你正使用 Fork & Pull 模式,Pull Resquest 提供了一種方式來通知項目維護者你希望他們考慮一下你提交的修改。若你正使用一個共享倉庫模式,在提議修改被合併到主分支中之前,Pull Resquest 可以啓動對修改代碼的審覈和討論



討論和代碼審覈

一旦開啓了一個 Pull Request,審覈你修改的人或團隊會來提出問題和評論。有可能是代碼風格符不符合項目規範, 也或者代碼忘了單元測試,也可能各方面都沒問題。Pull Request 就是爲了鼓勵這種類型的討論而設計的。

根據對你所做版本的討論和反饋,你也可以繼續往你的分支上推送代碼。若有人評論說你忘記做某件事或你的代碼中存在 bug,你可以在你的分支中修復它,並提交這些修改。Github 將會在同一個 Pull Request 中展示你的新修改和任何新的反饋。

深度技巧

Pull Request 中評論是用 Markdown 格式書寫的,所以你可以在評論中嵌入圖片和 emoji 表情符號,使用帶有格式的文本塊,和其它輕量級格式。



合併分支,然後部署

一旦大家審覈了你的 Pull Request 並且所有代碼通過了測試,就是可以把你的代碼合併到主分支了。 在把代碼合併到 GitHub 上的倉庫之前,如果你想測試代碼,你可以先在本地執行合併操作。在你沒有倉庫的推送權限的情況下,這也是很方便的。

一旦合併之後,Pull Request 會保留代碼的歷史修改記錄。因爲它們是可搜索的,它們讓人可以回到過去,去理解爲什麼做這個決定以及怎樣做的決定。

深度技巧

通過在你的 Pull Request 中包含某些特定關鍵詞,你就能用代碼關聯 issues。在你的 Pull Request 被合併的時候,與其相關的 issues 也會關閉。 例如,輸入這個短語 Closes #32 將會關閉倉庫中編號爲32的 issue。更多信息,查看我們的 幫助文檔

總結

github團隊協作流程如下:
1、創建分支
基本原則:主分支上的任何內容都要保證是可部署的。
2、添加新版本
跟蹤在某一分支上的工作進展。
3、開啓pull request
發起對所提交版本的討論,以便根據協作者的意見修改新版本
4、合併分支
代碼通過測試,即可合併到主分支上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章