Git 工作流指南
原文鏈接:Git Workflows and Tutorials
譯文發在博樂在線: http://blog.jobbole.com/76550/,2014-09-14
譯序
工作流其實不是一個初級主題,背后的本質問題其實是有效的項目流程管理和高效的開發協同約定,不僅是Git或SVN等VCS或SCM工具的使用。
這篇指南以大家在SVN中已經廣為熟悉使用的集中式工作流作為起點,循序漸進地演進到其它高效的分布式工作流,還介紹了如何配合使用便利的Pull Request功能,體系地講解了各種工作流的應用。
行文中實踐原則和操作示例并重,對于Git的資深玩家可以梳理思考提升,而新接觸的同學,也可以跟著step-by-step操作來操練學習并在實際工作中上手使用。
關于Git工作流主題,網上體系的中文資料不多,主要是零散的操作說明,希望這篇文章能讓你更深入理解并在工作中靈活有效地使用起來。
PS:
文中Pull Request的介紹用的是Bitbucket代碼托管服務,由于和GitHub基本一樣,如果你用的是GitHub(我自己也主要使用GitHub托管代碼),不影響理解和操作。
PPS:
本指南循序漸進地講解工作流,如果Git用的不多,可以從前面的講的工作流開始操練。操作過程去感受指南的講解:解決什么問題、如何解決問題,這樣理解就深了,也方便活用。
Gitflow工作流是經典模型,體現了工作流的經驗和精髓。隨著項目過程復雜化,會感受到這個工作流中深思熟慮和威力!
Forking工作流是協作的(GitHub風格)可以先看看GitHub的Help:Fork A Repo和Using pull requests 。照著操作,給一個GitHub項目貢獻你的提交,有操作經驗再看指南容易意會。指南中給了自己實現Fork的方法:Fork就是服務端的克隆。在指南的操練中使用代碼托管服務(如GitHub、Bitbucket),可以點一下按鈕就讓開發者完成倉庫的fork操作。
自己理解粗淺,翻譯中不足和不對之處,歡迎建議(提交Issue)和指正(Fork后提交代碼)!
Git工作流指南
工作流有各式各樣的用法,但也正因此使得在實際工作中如何上手使用變得很頭大。這篇指南通過總覽公司團隊中最常用的幾種Git工作流讓大家可以上手使用。
在閱讀的過程中請記住,本文中的幾種工作流是作為方案指導而不是條例規定。在展示了各種工作流可能的用法后,你可以從不同的工作流中挑選或揉合出一個滿足你自己需求的工作流。
概述
集中式工作流
如果你的開發團隊成員已經很熟悉Subversion,集中式工作流讓你無需去適應一個全新流程就可以體驗Git帶來的收益。這個工作流也可以作為向更Git風格工作流遷移的友好過渡。
功能分支工作流
功能分支工作流以集中式工作流為基礎,不同的是為各個新功能分配一個專門的分支來開發。這樣可以在把新功能集成到正式項目前,用Pull Requests的方式討論變更。
Gitflow工作流
Gitflow工作流通過為功能開發、發布準備和維護分配獨立的分支,讓發布迭代過程更流暢。嚴格的分支模型也為大型項目提供了一些非常必要的結構。
Forking工作流
Forking工作流是分布式工作流,充分利用了Git在分支和克隆上的優勢。可以安全可靠地管理大團隊的開發者(developer),并能接受不信任貢獻者(contributor)的提交。
Pull Requests
Pull requests是Bitbucket提供的讓開發者更方便地進行協作的功能,提供了友好的Web界面可以在提議的修改合并到正式項目之前對修改進行討論。