<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                #### Git工作流程 Git 能從眾多版本控制系統中脫穎而出,其'必殺技特性'是其分支模型,Git分支模型使版本的分支合并起來非常的方便。但是濫用其分支特性也會產生副作用,很可能會出現一個紛亂叢生、結構復雜的分支系統。于是[Vincent Driessen](https://nvie.com/posts/a-successful-git-branching-model/) 提出了一個分支管理模型Git-Flow。它可以使版本庫的更新迭代結構清晰,各分支各司其職~ #### Git-Flow > 開局一張圖,內容全靠編 ![](https://img.kancloud.cn/b7/03/b703b657b57738edcbb56d9756a40010_1200x1600.png) * Master -- 線上分支(發布分支,長期存在) * Develop -- 開發分支(本地分支,長期存在) * Feature -- 新功能分支 * Release -- 預熱分支(預發布分支) * Hotfix -- 修復分支(Bug分支) ***** ![](https://box.kancloud.cn/4dc8ef862b4e1e70fc45f6d00773160b_614x268.png) 需求是開發的起點,當我們進行功能開發時,先有需求再有功能分支(feature branch)。功能分支是從Develop分支上面分出來的,完成新功能后,該分支上的功能就被合并到Develop分支上,然后刪除 `Feature`分支。 ***** ![](https://box.kancloud.cn/aeb5cb758836d84cbbd9b319a462825a_614x320.png) 當develop分支積累足夠的功能(預定的發布日期臨近),就可以建立一個預發布分支(release branch)。預發布分支是從Develop分支上面分出來的,預發布結束以后,再合并到 `Develop` 和 `Master` 分支,然后刪除 `Release` 分支。 ***** ![](https://box.kancloud.cn/fa159868df4a416d391c6fd832851f9a_614x380.png) 當功能正常運行后,如果遇到緊急問題需要修復,這個時候需要創建一個獨立的修復分支(hotfix branch)。修復分支是從Master分支上面分出來的,當問題修復之后,再合并到 `Develop` 和 `Master` 分支,然后刪除 `Hotfix` 分支。 ***** 優點: * 結構清晰 * 適合大型團隊 缺點: * 相對復雜 * 頻繁切換分支 * 維護兩個長期分支 `Master` 和 `Develop` * 不太適合"持續發布"的項目 #### Github-Flow [Github flow](https://guides.github.com/introduction/flow/index.html)是Git flow的簡化版,專門配合"持續發布"。它是 Github使用的工作流程。 > 它只有一個長期分支,就是**Master**分支。官方[流程](https://guides.github.com/introduction/flow/index.html)如下: ![](https://img.kancloud.cn/9d/a0/9da013cbf837fff47bcccf6b314b9f78_1005x354.png) 1. 根據需求,從`Master`分支拉出新的分支,不區分功能分支與補丁分支。 2. 在分支中的增刪改查都要進行提交,會保留一個清晰的歷史記錄。 3. 你可以在開發過程中任意時刻發起一個`Pull Request`,讓別人看到你的請求(困難、想法、建議、工作)。 4. 大家一起評審、討論、評論你的代碼,對話過程中,你還可以不斷提交代碼。 5. 部署階段,合并之前你可以在生產分支中進行最終測試,根據測試結果選擇合并還是回滾。 6. 驗證通過,合并代碼到`Master`分支,合并請求后,如果有對應的問題,對應的問題也將被關閉。 優點: * 簡單 * 適合"持續發布"的項目 缺點: * `線上版本 < Master`分支(無法控制發布時間,IOS應用商店功能審核) * 需要多維護一個 `Production` 分支來追蹤線上版本 #### Gitlab-Flow [Gitlab flow](http://doc.gitlab.com/ee/workflow/gitlab_flow.html)是 Git flow 與 Github flow 的綜合。它吸取了兩者的優點,既有適應不同開發環境的彈性,又有單一主分支的簡單和便利。 ##### 持續發布 ![](https://img.kancloud.cn/02/73/027386423c629dbcd5a5b708be4f463b_338x549.png) 在 `Master` 分支之外建立線上 `Production` 分支,有新需求的情況下,以 `Master` 分支為基礎遷出一個分支進行開發,功能完成之后 `merge` 到 `Master` 分支,確認沒問題后 `merge` 到 `Production` 分支。 `Master` 分支被稱為上游分支,代碼的變化必須由"上游"向"下游"發展。 ##### 版本發布 ![](https://img.kancloud.cn/76/cb/76cb458e70552f68261bb41c7120a788_550x719.png) 對于"版本發布"的項目,才會使用發布分支,以`master`為起點拉出一個分支,每個分支都要包含次要版本,比如`2-3-stable`、`2-4-stable`等。 以后,只有修補bug,才允許將代碼合并到這些分支,并且此時要更新次要版本號。 ##### 參考鏈接 [Git實操網站 - 生動形象](https://learngitbranching.js.org) [ngulc - 博客園](https://www.cnblogs.com/lcngu/p/5770288.html) [阮一峰 - Git分支管理策略](http://www.ruanyifeng.com/blog/2012/07/git.html) [阮一峰 - Git工作流程](http://www.ruanyifeng.com/blog/2015/12/git-workflow.html) [Github-Flow](https://guides.github.com/introduction/flow/index.html) [Gitlab-Flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看