目錄:
新概念的定義
為了能夠嚴謹、準確、方便地表達分支之間的關系,我定義了以下概念:
臨時性分支 終將會被合并到 長期分支中(除非棄用),如,開發完功能后,因轉測,需要把 功能分支 合并到 測試分支 中,測試完后,測試分支 又會被合并到 預發布 分支中,最后,預發布分支 又會被合并到 發布分支 中;在這個過程中,功能分支 依次被合并到了 測試分支、預發布分支、發布分支;
像上面這樣,分支 在被其它分支合并的過程 稱為分支的 流轉;
分支A 被合并到 分支B ,也稱為 分支A 流轉到了 分支B;
分支A 流轉到了 分支B,分支B 又流轉到了 分支C ,像這樣的過程稱為 分支A 的 連續流轉,也稱為 分支A 連續流轉到了 分支C;
連續流轉過程中的每一個分支 都稱為該連續流轉的一個 流轉環節,也稱為該連續流轉的一個 流轉分支;
連續流轉的所有 流轉環節 的有序組合 稱為 流轉鏈;
流轉鏈中 最初的 流轉環節(流轉分支) 又稱為該流轉鏈的 原始分支 或 初始環節;
流轉鏈中 最終的 流轉環節(流轉分支) 又稱為該流轉鏈的 終點分支 或 終點環節;
流轉鏈中 原始分支 和 終點分支 之間的 流轉分支 稱為 中間分支 或 中間環節;
如果 分支A 是基于 分支B 創建的,即: 分支A 是從 分支B 創建的,則稱 分支B 是 分支A 的 直接母分支; 分支A 是 分支B 的 直接子分支;
分支A 的 直接母分支 和 其 直接母分支 的 直接母分支 等(以此類推) 統稱為 分支A 的 母分支;
分支A 的 直接子分支 和 其 直接子分支 的 直接子分支 統稱為 分支A 的 子分支;
母分支 和 子分支 之間的關系 稱為 互為 母子關系;
母分支 和 子分支 統稱為 母子分支;
直接母分支 和 直接子分支 之間的關系 稱為 互為 直接母子關系;
直接母分支 和 直接子分支 統稱為 直接母子分支;
如果總是從 分支A 合并(或變基)到 分支B,即:則稱 分支A 是 分支B 的 直接上游分支; 分支B 是 分支A 的 直接下游分支;
分支A 的 直接上游分支 和 其 直接上游分支 的 直接上游分支 等(以此類推) 統稱為 分支A 的 上游分支;
分支A 的 直接下游分支 和 其 直接下游分支 的 直接下游分支 統稱為 分支A 的 下游分支;
上游分支 和 下游分支 之間的關系 稱為 互為 上下游關系;
上游分支 和 下游分支 統稱為 上下游分支;
直接上游分支 和 直接下游分支 之間的關系 稱為 互為 直接上下游關系;
直接上游分支 和 直接下游分支 統稱為 直接上下游分支;
母子關系 和 上下游關系 的區別:
- 母子關系 強調的是分子之間的創建關系
- 上下游分支 強調的是分子之間的合并關系
分支的分類
按照生命周期來分
- 長期:伴隨Git項目一直存在的分支;
- 臨時:針對特定任務或目的而建的,且 當完成任務或達到目的后需要被刪除的分支;
按照作用來分
- 發布:為存放已發布的、正式的版本而建的分支;
- 預發布:為即將正式發布的版本做試運行而建的分支;如果沒有試運行階段,則可以不設 預發布 分支;
- 功能:為實現一個 或 多個 功能而開設的分支;
- 修復:為修復一個 或 多個 問題 而開設的分支;
- 協作:為實現多人協作而開設的分支;
- 合并:為合并多個分支而建的分支;
- 測試:為測試而建的分支;
按照流轉環節來分
- 流轉分支
- 原始分支
- 中間分支
- 終點分支
- 母分支