<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 一、git、gitlab基礎概念 ### git/gitlab/github * git是開發者使用的本地代碼分支及與遠程代碼倉庫交互的命令行工具。 * github、gitee、gitcode等是由代碼托管商公司提供的互聯網遠程代碼管理倉庫。 * 考慮到github、gitee、gitcode部署在互聯網,可能出現安全性的問題。通常開發團隊會自己搭建gitlab私有代碼倉庫。 ### 分支概念 通常開發團隊會維護三個代碼分支: * master 分支:一般對應生產代碼分支,發布到 master 即意味著上線。 * develop 分支:一般對應測試環境的代碼分支,用于部署測試環境應用服務。 * feature 分支::通常開發一個新功能,完成一個bug修改,都需要建立一個feature分支。合并到develop分支后進行測試,合并到master分之后作為生產版本。 git 鼓勵使用分支feature 工作。開始工作的第一件事就是建立feature 分支。開發者本地的 master 分支應該永遠保持干凈,只用來同步遠程倉庫的穩定代碼,即遠程倉庫 master 分支的代碼。 普通開發者通常不允許直接操作向develop與master分支的提交代碼,這樣做的好處是: * 保證測試團隊環境以及生產環境代碼的穩定性。 * 區分master分支(生產環境)、develop(測試環境) 分支更有利于后續區分環境的CI/CD。 ## 二、開發者常規步驟 #### 1. 拉取最新代碼:git pull 從遠程倉庫拉取master分支最新的代碼 ![](https://img.kancloud.cn/00/4f/004fa45d0b89eddf94161d09951e93c8_1063x405.png) ![](https://img.kancloud.cn/03/73/0373900d9081e4ebf4102d6006120e53_661x499.png) #### 2. 建立本地feature分支 建立本地feature分支 feature-xxxx(xxxx一般為任務的名稱):`git checkout -b feature/xxxx` ![](https://img.kancloud.cn/21/37/2137372cf9ab8f89e1bf599b55b94c74_1048x361.png) ![](https://img.kancloud.cn/35/e6/35e6b71b1de323c1e8fdd2aa47aeeeec_248x194.png) ![](https://img.kancloud.cn/a3/40/a3404de97ed01ea55eeadca43905fa20_418x227.png) 完成上面步驟之后,IDEA的workspace 就切換到 feature-xxxx分支了,可以開始任務的代碼編寫。 #### 3. commit代碼 在feature分支下可以多次提交代碼,這個代碼commit提交是在開發者本地緩存的,并不會commit到遠程倉庫。 git命令:` git commit -m “有意義的描述”`,一般建議階段性工作完成commit一次,或者離開座位去做其他工作之前提交一次。 #### 4. push 到遠程倉庫 git命令:`git push --set-upstream origin feature/xxxx` ![](https://img.kancloud.cn/ca/15/ca1525c42839606d7d522536b5763181_1078x347.png) ## 三、代碼 Merge Request * feature分支功能開發完成之后,建立到 develop 的 Merge Request:在 gitlab 中點擊 "Create Merge Request",source 為 feature-xxxx,target 為 develop。 * Code Review:根據大家的 review 意見,追加 commit,或者修改原有 commit。 創建Merge Request ![](https://img.kancloud.cn/03/61/0361c76ac02a53db3a8facc3aa2f4a05_1200x539.png) 選擇要提交的分支以及要合并到哪個分支 ![](https://img.kancloud.cn/67/fa/67fa2b2fa651b2b9c4216df858975fb0_1200x408.png) 填寫一些相關內容,并提交 ![](https://img.kancloud.cn/d1/2e/d12e18f0a558727c6602be30202e6c05_1200x673.png) 等待確認人確認提交后,你的分支就會被合并到相應分支里。完成上面的步驟,代碼就合并到develop分支了,待develop分支代碼完成測試之后,**(future分支的功能代碼通過測試之后,刪掉該feature分支即可。)**,通過上面的同樣的步驟將develop分支合并到master分支。master分支作為生產代碼上線部署。 ## 四、沖突的解決 feature分支代碼提交之后,與 develop 分支代碼進行合并,gitlab提示兩個分支的代碼有沖突。這說明多個開發者修改了同一個文件的同一塊代碼。 * 點擊Resolve conflict在線比對代碼,解決沖突。對于代碼沖突較少的情況,可以使用這種方法。 * 點擊Merge locally開發者自己在本地解決沖突,后續再提交上來。 ![](https://img.kancloud.cn/58/82/58823dd38a3b1b641480e90eca26960f_652x103.png) * feature分支與develop 分支沖突的解決。 * `git pull origin develop` 拉取最新的develop分支代碼 * `git checkout develop` 本地代碼切換到develop分支代碼 * `git merge --no-diff feature-xxxx` 解決沖突代碼,建議使用IDEA圖形界面,處理沖突文件更方便。 * `git push develop` * 與 master 分支代碼有沖突,如果遵守開發人員不允許直接向master分支提交代碼的規則,這種情況通常不會出現。
                  <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>

                              哎呀哎呀视频在线观看