<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          代碼提交那點(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 等,這些毫無意義的信息內(nèi)容會(huì)給后續(xù)工作帶來很多麻煩。

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

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

          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

          用于說明 commit 的類別,只允許使用下面 3 個(gè)類別。類別不宜弄的太多,太多了開發(fā)人員在提交代碼時(shí)會(huì)帶來負(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 中能說明白了,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 記錄合并起來,整體的提交信息記錄就更加清晰。

          將多個(gè) commit 提交進(jìn)行合并,需要用到 git 的 rebase 功能,下面進(jìn)行一個(gè)簡(jiǎn)單的演示來看看 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ù)的問題排查和查找修改記錄會(huì)有很大幫助。

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

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

          后來發(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)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操碰久久 | 亚洲成人AV电影在线观看 | 最新国产三级 | 色色网的五月天 | 操B免费看|