1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        這應(yīng)該是全網(wǎng)最全的Git分支開發(fā)規(guī)范手冊~

        共 2873字,需瀏覽 6分鐘

         ·

        2020-11-19 02:26

        Git 是目前最流行的源代碼管理工具。為規(guī)范開發(fā),保持代碼提交記錄以及 git 分支結(jié)構(gòu)清晰,方便后續(xù)維護(hù),現(xiàn)規(guī)范 git 的相關(guān)操作。

        # 分支命名


        master 分支


        master 為主分支,也是用于部署生產(chǎn)環(huán)境的分支,確保master分支穩(wěn)定性

        master 分支一般由develop以及hotfix分支合并,任何時(shí)間都不能直接修改代碼


        develop 分支

        develop 為開發(fā)分支,始終保持最新完成以及bug修復(fù)后的代碼,一般開發(fā)的新功能時(shí),feature分支都是基于develop分支下創(chuàng)建的

        feature 分支

        開發(fā)新功能時(shí),以develop為基礎(chǔ)創(chuàng)建feature分支

        分支命名: feature/ 開頭的為特性分支, 命名規(guī)則: feature/user_module、 feature/cart_module

        release分支


        release 為預(yù)上線分支,發(fā)布提測階段,會(huì)release分支代碼為基準(zhǔn)提測
        當(dāng)有一組feature開發(fā)完成,首先會(huì)合并到develop分支,進(jìn)入提測時(shí)會(huì)創(chuàng)建release分支。如果測試過程中若存在bug需要修復(fù),則直接由開發(fā)者在release分支修復(fù)并提交。當(dāng)測試完成之后,合并release分支到master和develop分支,此時(shí)master為最新代碼,用作上線。


        hotfix 分支


        分支命名: hotfix/ 開頭的為修復(fù)分支,它的命名規(guī)則與 feature 分支類似

        線上出現(xiàn)緊急問題時(shí),需要及時(shí)修復(fù),以master分支為基線,創(chuàng)建hotfix分支,修復(fù)完成后,需要合并到master分支和develop分支

        # 常見任務(wù)


        增加新功能

        (dev)$: git checkout -b feature/xxx            # 從dev建立特性分支(feature/xxx)$: blabla                         # 開發(fā)(feature/xxx)$: git add xxx(feature/xxx)$: git commit -m 'commit comment'(dev)$: git merge feature/xxx --no-ff          # 把特性分支合并到dev

        修復(fù)緊急bug

        (master)$: git checkout -b hotfix/xxx         # 從master建立hotfix分支(hotfix/xxx)$: blabla                         # 開發(fā)(hotfix/xxx)$: git add xxx(hotfix/xxx)$: git commit -m 'commit comment'(master)$: git merge hotfix/xxx --no-ff       # 把hotfix分支合并到master,并上線到生產(chǎn)環(huán)境(dev)$: git merge hotfix/xxx --no-ff          # 把hotfix分支合并到dev,同步代碼

        測試環(huán)境代碼

        (release)$:?git?merge?dev?--no-ff?????????????#?把dev分支合并到release,然后在測試環(huán)境拉取并測試

        生產(chǎn)環(huán)境上線
        (master)$: git merge release --no-ff          # 把release測試好的代碼合并到master,運(yùn)維人員操作(master)$:?git?tag?-a?v0.1?-m?'部署包版本名'??#給版本命名,打Tag

        # 日志規(guī)范


        在一個(gè)團(tuán)隊(duì)協(xié)作的項(xiàng)目中,開發(fā)人員需要經(jīng)常提交一些代碼去修復(fù)bug或者實(shí)現(xiàn)新的feature。


        而項(xiàng)目中的文件和實(shí)現(xiàn)什么功能、解決什么問題都會(huì)漸漸淡忘,最后需要浪費(fèi)時(shí)間去閱讀代碼。但是好的日志規(guī)范commit messages編寫有幫助到我們,它也反映了一個(gè)開發(fā)人員是否是良好的協(xié)作者。


        編寫良好的Commit messages可以達(dá)到3個(gè)重要的目的:


        • 加快review的流程

        • 幫助我們編寫良好的版本發(fā)布日志

        • 讓之后的維護(hù)者了解代碼里出現(xiàn)特定變化和feature被添加的原因


        目前,社區(qū)有多種 Commit message 的寫法規(guī)范。來自Angular 規(guī)范是目前使用最廣的寫法,比較合理和系統(tǒng)化。如下圖:



        # Commit messages的基本語法


        當(dāng)前業(yè)界應(yīng)用的比較廣泛的是 Angular Git Commit Guidelines

        “https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines


        具體格式為:

        <type>: <subject><BLANK LINE><body><BLANK LINE><footer>

        type: 本次 commit 的類型,諸如 bugfix docs style 等


        scope: 本次 commit 波及的范圍


        subject: 簡明扼要的闡述下本次 commit 的主旨,在原文中特意強(qiáng)調(diào)了幾點(diǎn):


        1. 使用祈使句,是不是很熟悉又陌生的一個(gè)詞

        2. 首字母不要大寫

        3. 結(jié)尾無需添加標(biāo)點(diǎn)


        body: 同樣使用祈使句,在主體內(nèi)容中我們需要把本次 commit 詳細(xì)的描述一下,比如此次變更的動(dòng)機(jī),如需換行,則使用 |


        footer: 描述下與之關(guān)聯(lián)的 issue 或 break change


        # Type的類別說明:


        • feat: 添加新特性
        • fix: 修復(fù)bug
        • docs: 僅僅修改了文檔
        • style: 僅僅修改了空格、格式縮進(jìn)、都好等等,不改變代碼邏輯
        • refactor: 代碼重構(gòu),沒有加新功能或者修復(fù)bug
        • perf: 增加代碼進(jìn)行性能測試
        • test: 增加測試用例
        • chore: 改變構(gòu)建流程、或者增加依賴庫、工具等


        # Commit messages格式要求


        # 標(biāo)題行:50個(gè)字符以內(nèi),描述主要變更內(nèi)容## 主體內(nèi)容:更詳細(xì)的說明文本,建議72個(gè)字符以內(nèi)。需要描述的信息包括:## * 為什么這個(gè)變更是必須的? 它可能是用來修復(fù)一個(gè)bug,增加一個(gè)feature,提升性能、可靠性、穩(wěn)定性等等# * 他如何解決這個(gè)問題? 具體描述解決問題的步驟# * 是否存在副作用、風(fēng)險(xiǎn)?## 如果需要的化可以添加一個(gè)鏈接到issue地址或者其它文檔
        來源:https://www.cnblogs.com/heroljy/p/9294127.html

        推薦閱讀

        GitHub 熱榜:標(biāo)星 1.6w,黑客必看的黑魔法開發(fā)指南!

        深入了解 Json Web Token 之概念篇

        Spring 中的 bean 是線程安全的嗎?


        最后,推薦給大家一個(gè)有趣有料的公眾號(hào):寫代碼的渣渣鵬,7年老程序員教你寫bug,回復(fù) 面試或資源 送一你整套開發(fā)筆記 有驚喜哦

        瀏覽 56
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            大屌一区| 浪潮av在线 | 午夜精品区 | 国产A片大全| 我和麻麻车上啪啪全文阅读 | 韩日性爱 | asian壮年妇女裸体pics | 精品人妻少妇一级毛片免费 | 竟然挤出喷出奶水乳奴 | 国产成人精品视频免费看 |