“Git PR” 指的是 Git 中的 Pull Request,是一種協作開發的工作流程。Pull Request 提供了一種將代碼從一個分支(通常是開發者個人的分支)合并到另一個分支(通常是主分支)的機制,并在合并前進行代碼審查和討論的平臺。
下面是 Pull Request 的基本流程:
-
Fork 倉庫: 開發者首先會 Fork 項目的主倉庫,從而在自己的 GitHub 賬號下復制一份倉庫。
-
創建分支: 在自己 Fork 的倉庫中,開發者創建一個新的分支,通常是用于解決某個問題或實現某個功能。
-
提交更改: 在新創建的分支中進行代碼的修改、添加、刪除等操作,并將更改提交到這個分支。
-
發起 Pull Request: 開發者在 GitHub 上發起一個 Pull Request,請求將自己的分支合并到主倉庫的特定分支中。
-
Code Review: 團隊中的其他成員或項目維護者對這個 Pull Request 進行代碼審查,提出建議、修改或直接通過。
-
合并(Merge): 一旦 Pull Request 審核通過,代碼維護者可以選擇將這個分支的更改合并到主分支中。
-
關閉 Pull Request: 合并后,開發者通常會關閉這個 Pull Request,標志著任務的完成。
使用 Pull Request 的好處包括:
-
代碼審查: 通過 Pull Request,團隊成員可以對代碼進行審查,提出改進建議,確保代碼質量和一致性。
-
版本控制: Pull Request 提供了一個清晰的版本控制歷史,開發者可以在不同的分支上開發功能,有選擇性地將它們合并到主分支。
-
協作: Pull Request 提供了一種協作的機制,可以讓多個開發者同時在不同分支上進行工作,而不會相互影響。
Pull Request 是在分布式版本控制系統(如 Git)中實現協作開發的一種強大工具,特別適用于大型項目或團隊協作。
Gitflow分支管理模型
Gitflow 是一種 Git 分支管理模型,它提供了一套在軟件開發中使用的規范化分支結構,有助于組織和管理代碼庫的版本。這個模型是由 Vincent Driessen 在他的博客上首次提出的。
Gitflow 模型包括以下幾種主要分支:
-
主分支(Master): 主分支是生產環境中的穩定版本,這個分支上的代碼應該是可靠、穩定的。當項目的一個穩定版本被認為是可發布的時候,會將主分支上的代碼打上標簽(Tag)。
-
開發分支(Develop): 開發分支是主要的集成分支,包含了所有待發布的功能和修復。從這個分支開始進行新功能的開發和bug修復。當一個開發周期結束,開發分支會合并到主分支,形成新的發布。
-
特性分支(Feature): 每個新功能都會在這個分支上進行開發。特性分支通常從開發分支派生,并在完成后再合并回開發分支。一個特性分支只關注一個獨立的功能,這樣可以更容易進行協作和審查。
-
發布分支(Release): 當開發分支上的所有功能都已經完成,開始進行測試時,會創建一個發布分支。在發布分支上進行測試、修復 bug、準備發布的工作。一旦準備好發布,將發布分支合并到主分支,并打上版本標簽。
-
熱修復分支(Hotfix): 在主分支上的穩定版本上進行緊急的 bug 修復時,會創建一個熱修復分支。修復完成后,將熱修復分支合并到主分支和開發分支。
Gitflow 模型的主要優勢在于清晰的分支結構,它提供了一種有序的方式來組織和管理代碼。每個分支都有特定的用途,有助于團隊在不同的開發階段進行協作,同時也使得版本控制更加可控。
需要注意的是,Gitflow 模型相對于其他分支模型,可能會增加一些復雜性,因此在選擇使用時,可以根據項目的規模和團隊的工作流程來決定是否合適。
git pr 和mr 區別
“PR” 和 “MR” 都是表示同一概念的不同術語,分別代表 Pull Request 和 Merge Request。它們在不同的代碼協作平臺上使用,但在功能和概念上基本是相同的。
-
Pull Request (PR):
- 平臺: 通常在使用 Git 作為版本控制系統的項目中,如 GitHub、GitLab 和 Bitbucket。
- 意義: 提交者在自己的分支上完成工作后,向倉庫的管理員(或合作者)發出請求,請求他們“拉取”(pull)這個分支的更改,合并到目標分支中。
- 動作: 創建者通常會創建一個 Pull Request,并請求其他人查看和審查他們的更改。審查通過后,可以將更改合并到目標分支中。
-
Merge Request (MR):
- 平臺: 主要在 GitLab 上使用,GitLab 使用 “Merge Request” 作為這一概念的術語。
- 意義: 與 Pull Request 類似,是由開發者向倉庫的管理員(或合作者)發出的請求,請求將其分支的更改合并到目標分支中。
- 動作: 創建者會創建一個 Merge Request,并等待審閱。一旦通過審閱,可以將更改合并到目標分支中。
雖然術語不同,但在功能上它們是相似的,都是用于請求將一個分支的更改合并到另一個分支。選擇使用 “PR” 還是 “MR” 取決于你所使用的代碼協作平臺。在 GitLab 上通常使用 “MR”,而在 GitHub、Bitbucket 等平臺上通常使用 “PR”。