根據項目類型、公司規模、團隊偏好和許多其他因素,每個團隊都有自己的工作流程。 團隊越大,管理就越困難:問題相沖突變得更加普遍,推遲發布日期,工作任務優先權不斷變化,項目工作列表無窮無盡。
第一步就是使用Git,它能解決這些一直困擾著我們的問題。以下是您可以在業務中使用的5種最流行的Git工作流程:
一、基本流程
執行方法很簡單:設一個存儲倉。 每個程序員都可以從代碼存儲倉下載源碼,然后在本地處理開發代碼,創建帶有更改的提交信息,并將其推送到這個中心存儲倉,以供其他程序員在參與、提取、開發和使用。
二、功能分支
基本工作流程非常適合開發簡單的網站。 但是,一旦兩個程序員開始在一個項目中開發兩個不同的功能,問題就會慢慢顯露出來。
假設其中一位程序員完成了他們的功能并想要發布。 由于第二個功能還沒有完成,那這個時候只能等另一個。 此時發布可能會導致混亂。
這就是分支Git的核心特性派上用場的地方。 分支是項目開發的獨立“軌道”。 對于每個新功能,都應該創建一個新分支,在此開發和測試新功能。 功能準備就緒后,可以將分支合并到主分支(Master/Main),以便將其發布到正式運營的服務器。
功能分支與合并請求
功能分支工作流程預設團隊中的所有開發人員都具有相同的技術水平與職位。 然而,在更大的團隊中,公司中總是存在某種形式的等級制度。
在這種情況下,您可以使用合并請求和推送權限,允許您限制推送到存儲庫中的選定分支并保持對代碼的完全控制管理。
在將分支合并到主分支之前,需要對其進行驗證和檢查是否出錯。 初級程序員可以創建合并請求并將其分配給其中一位高級程序員,這樣他們就可以查看代碼并發表評論。 如果一切正常,則接受請求合并分支。
三、Gitflow
項目越大您就越需要控制發布的內容與時間。 項目需要更多的單元與集成測試,這樣運行一次至少幾小時。 但您沒必要在開發功能的分支上運行此類測試。
因此,可以通過Gitflow解決,這是由Vincent Driessen于2010年提出且闡述的Git開發工作流程。
此工作流使用兩個并行長時間運行的分支:
- 主分支
僅用于項目發布
- 開發分支
創建自主分支,為下一個版本準備的已全部完成開發且功能穩定的分支所在位置
當您開始開發新功能時,從開發分支中創建一個新功能分支。根據需要同時創建多個功能分支。 完成開發并測試功能后,將代碼合并回開發分支。然后,當發布項目時,將新功能與新發布分支上的開發分支隔離開來。 確保該版本經過良好的、穩定的測試。
此時根據項目的特點,向公眾發布軟件的RC版本也許是一個不錯的主意。當版本穩定并且所有問題都解決后,將您的發布分支合并回主分支并部署到正式運營中!
四、分叉流程
就像在公海上一樣,在開源中一切都取決于船長。在軟件方面,存儲倉所有者決定誰可以推送到存儲倉。盡管開源的理念是每個人都可以為項目做出貢獻,但我們想一想,要是老萊(Linus Torvalds)允許任何人無限權限地修改Linux項目存儲倉的代碼,會不會很好玩?
這個問題由分叉解決:任何時候開發人員想要更改開源項目中的某些內容,他們都不會直接在項目的存儲倉上工作。相反,直接通過分叉并有效地創建整個存儲倉副本。然后,程序員可以自由地以他們的喜好開發新功能。值得一提的是,分叉也為創建針對特定應用程序調整的某些組件自定義版本提供了無限可能性。程序員或公司可以分叉一個存儲倉并將代碼帶到一個全新的方向,當然,項目創始人可能會有異議。
然而,在大多數情況下,當工作完成時,會創建一個拉取請求,將程序員引入其分支的更改與分支存儲倉狀態進行比較。在那里,社區和項目所有者可以審查、討論和測試更改。最后的決定權仍掌握在該項目的船長及其副手之中。
五、您自己定義的Git流程
在本文描述的Git工作流程只是一些示例。 Git最大的特點是您可以選擇現有的工作流程并輕松地使其達到您的需求。 例如,我在Buddy(一個DevOps自動化平臺)中使用經過修改的Gitflow和額外的暫存分支為我帶來了更高效的開發效率。
最后,我求求那些企業所有者,技術出身也好、暴發戶也罷(當然土豪自便),從今天開始用Git開發您的項目吧!別到了被刪庫跑路才來哭鼻子!
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。