1. 代碼提交那點(diǎn)事

        共 2595字,需瀏覽 6分鐘

         ·

        2023-02-15 01:04

        3a7dfceba453560e1bad60593c880fb4.webp

        現(xiàn)在,代碼的版本管理大多都在使用 git,常用的一些代碼托管平臺(tái)有:Github、碼云、Gitlab 等,不管用的哪個(gè)平臺(tái),我們經(jīng)常會(huì)做提交代碼的操作,但很容易忽視 commit message 的寫法。

        在一些工具中進(jìn)行代碼提交,提交信息是必填的,正因?yàn)槭潜靥?,就?huì)出現(xiàn)很多隨意的內(nèi)容,例如:ok、update、test 等,這些毫無(wú)意義的信息內(nèi)容會(huì)給后續(xù)工作帶來(lái)很多麻煩。

        所以,春節(jié)后上班第一件事就是在團(tuán)隊(duì)內(nèi)強(qiáng)調(diào)提交信息的重要性,并制定統(tǒng)一規(guī)范。很多時(shí)候做不好,不是能力問(wèn)題,而是態(tài)度問(wèn)題。

        在提交信息的規(guī)范上可以按照下面三個(gè)方面來(lái)做:

        1、規(guī)范信息的寫法;

        2、提交信息的合并;

        3、提交和任務(wù)關(guān)聯(lián)。

        規(guī)范信息的寫法

        commit message 通常包括兩個(gè)部分:header、body ,如下:

              
              <type>:?<subject>???//冒號(hào)使用西文
        //空一行
        <body>

        header

        header 部分只有一行,包括兩個(gè)字段:type(必須) 和 subject(必須),type ?和 subject 之間使用西文冒號(hào)和一個(gè)空格隔開。

        type

        用于說(shuō)明 commit 的類別,只允許使用下面 3 個(gè)類別。類別不宜弄的太多,太多了開發(fā)人員在提交代碼時(shí)會(huì)帶來(lái)負(fù)擔(dān)。下面這三個(gè)類別我認(rèn)為幾乎可以包含所有情況了:

        • feat:新功能(feature)
        • fixed:修復(fù) bug
        • refactor:重構(gòu)(即不是新增功能,也不是修改 bug 的代碼修改)

        subject

        提交信息的標(biāo)題,一句話總結(jié)提交的信息,盡量做到既簡(jiǎn)潔,又詳細(xì)。

        body(非必填)

        body 部分是對(duì)本次 ?commit 的詳細(xì)描述,可以分成多行,body 和 header 中間空一行。body 為非必填內(nèi)容,如果 subject 中能說(shuō)明白了,body 就可以空著。

        如果你覺得一次 commit 的內(nèi)容中包含下面一些情況,就可以在 body 中寫明:

        • 有相關(guān)聯(lián)影響點(diǎn)的;
        • 內(nèi)容相對(duì)較多,subject 不能完全描述的;
        • 提交內(nèi)容包含特殊的意圖。

        提交合并

        有了標(biāo)準(zhǔn)的規(guī)范后,提交的信息統(tǒng)一了、可讀性更強(qiáng),但有時(shí)在開發(fā)一個(gè)特性或修改一個(gè) Bug 時(shí),會(huì) commit 很多次代碼,這些提交目的其實(shí)是一個(gè),如果能將這些 commit 記錄合并起來(lái),整體的提交信息記錄就更加清晰。

        將多個(gè) commit 提交進(jìn)行合并,需要用到 git 的 rebase 功能,下面進(jìn)行一個(gè)簡(jiǎn)單的演示來(lái)看看 rebase 怎么使用:

        1、在 gitlab 上創(chuàng)建一個(gè)示例項(xiàng)目 rebase_test;

        2、將項(xiàng)目拉到本地,添加 README.md 文件,并推送到 gitlab ;

        3、分三次修改 README.md 文件,進(jìn)行三次 commit ,使用 git log 查看看提交記錄如下:

        e1e349b2d0deafa4586853c9b5161b95.webp

        4、將提交 push 到 gitlab ,在 gtilab 中顯示如下:

        1df20de6cbdc301ea3433bf0659c981d.webp

        5、現(xiàn)在要將這三次提交合并為一次,在 git 命令行執(zhí)行:

              
              git?rebase?-i?740aa70a
        • -i :代表交互式操作;
        • 740aa70a :表示第一個(gè)提交的 commit id,取前幾位就行。

        6、按下圖紅框部分進(jìn)行內(nèi)容的修改,然后保存:

        61cdb5cbc3cf28b79676d020b57e1161.webp

        7、將三次修改的提交信息進(jìn)行合并:

        b1d7304b6950bd8780469291c32ffb55.webp

        8、使用 git log 看提交信息的記錄,會(huì)發(fā)現(xiàn)已經(jīng)進(jìn)行了合并:

        0165faaf2b20b6e561d445a42a716e1f.webp

        和任務(wù)關(guān)聯(lián)

        在 git 中的每次提交,都是跟具體的任務(wù)相關(guān),正常的迭代任務(wù)、Bug 任務(wù)等,如果能將任務(wù)和代碼提交記錄進(jìn)行關(guān)聯(lián),對(duì)于后續(xù)的問(wèn)題排查和查找修改記錄會(huì)有很大幫助。

        起初的想法是將任務(wù)的編號(hào)寫到提交信息的 header 部分:

              
              <type>:?<taskNumber>?<subject>?
        //空一行
        <body>

        后來(lái)發(fā)現(xiàn)在 pingcode 的應(yīng)用市場(chǎng)中有一個(gè) Gitlab 應(yīng)用,可以到達(dá)提交和任務(wù)關(guān)聯(lián)的目的。恰好,我們團(tuán)隊(duì)也正在使用 pingcode 。

        Gialab 應(yīng)用的介紹是這樣的:

        GitLab 是由 GitLab Inc.開發(fā)的一款基于 Git 的完全集成的軟件開發(fā)平臺(tái)。GitLab在國(guó)內(nèi)最廣為人知的功能當(dāng)屬代碼托管,這源于其基于Ruby on Rails的開源項(xiàng)目屬性。GitLab App是由PingCode Labs開發(fā)的一款工具,它可以將GitLab的Commit、Branch、Merge Request關(guān)聯(lián)到 PingCode 的工作項(xiàng)中。

        詳細(xì)的配置可以參考:

        https://apps.pingcode.com/gitlab/configuration

        最終任務(wù)關(guān)聯(lián)后的效果如下:

        6df2d368c8b3d04739e6717dc9a34b7c.webp

        在 pingcode 的任務(wù)界面中可以看到代碼的分支、提交記錄和 pull reqeust 記錄,點(diǎn)擊提交記錄可以直接跳轉(zhuǎn)到 Gitlab 中對(duì)應(yīng)的頁(yè)面。



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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 大香焦av | 99久久久国精产品 | 大鷄巴成人A片 | av资源男人站 | 风间由美不戴奶罩邻居勃起av |