Git 提交規(guī)范

  1. 前言
    在提交commit信息時(shí),為了統(tǒng)一規(guī)范commit信息居凶,可以在Git Hooks中編寫修改commit-msg腳本來先 實(shí)現(xiàn)自定義commit信息校驗(yàn)規(guī)則

  1. git hooks 所在路徑
    hooks腳本在git項(xiàng)目中的根目錄下的.git目錄侠碧,具體路徑為:.git/hooks/
    目錄內(nèi)容如下圖所示:


    圖1.png

  1. 修改腳本內(nèi)容
    本次為了校驗(yàn)commit信息是否符合提交規(guī)范,所以我們?cè)赾ommit-msg這個(gè)hook中編寫腳本內(nèi)容

    #! /usr/bin/env python
    # -*- encoding: utf-8 -*-
    import sys
    import re
    
    # 可以根據(jù)自己團(tuán)隊(duì)的需求來修改正則表達(dá)式
    pattern = re.compile(
    "^(feat|fix|polish|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}")
    
    def validate_commit_msg(msg: str):   
        """ 
        校驗(yàn)git commit 內(nèi)容格式是否滿足要求    
        :param msg:    
        :return: void   
        """   
        if msg.startswith("Revert"):
            sys.exit(0)
        elif msg.startswith("Merge"):
            sys.exit(0)
        elif re.match(pattern, msg):
            sys.exit(0)    
        else:        
            print("invalid commit format")
            sys.exit(1)
    if __name__ == "__main__":   
        # 在commit-msg 這個(gè)hook運(yùn)行時(shí)會(huì)傳入一個(gè)保存commit信息的文件地址
        # 需要從這個(gè)文件中讀取提交信息
        file_name = sys.argv[1]
        print(file_name)    
        commit_msg = ""   
        with open(file_name, encoding="utf-8") as file:
            for line in file.readlines():
                commit_msg += line    
        validate_commit_msg(commit_msg)
    

  1. IDEA插件
    可以在Jetbrain中安裝Git Commit Template 插件配合使用


  2. 注意事項(xiàng)
    需要在環(huán)境變量中加入Python可執(zhí)行目錄贸典,不然這個(gè)腳本會(huì)執(zhí)行失敗

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末据过,一起剝皮案震驚了整個(gè)濱河市妒挎,隨后出現(xiàn)的幾起案子饥漫,更是在濱河造成了極大的恐慌庸队,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異丙笋,居然都是意外死亡御板,警方通過查閱死者的電腦和手機(jī)怠肋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門笙各,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杈抢,“玉大人仑性,你說我怎么就攤上這事诊杆」粽蓿” “怎么了宰缤?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵朦乏,是天一觀的道長(zhǎng)呻疹。 經(jīng)常有香客問我刽锤,道長(zhǎng),這世上最難降的妖魔是什么并思? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任弄砍,我火速辦了婚禮音婶,結(jié)果婚禮上桃熄,老公的妹妹穿的比我還像新娘瞳收。我一直安慰自己螟深,他們只是感情好烫葬,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著兑巾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帅掘。 梳的紋絲不亂的頭發(fā)上堂油,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天吱窝,我揣著相機(jī)與錄音院峡,去河邊找鬼撕予。 笑死,一個(gè)胖子當(dāng)著我的面吹牛欢策,可吹牛的內(nèi)容都是我干的踩寇。 我是一名探鬼主播俺孙,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼睛榄,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了场靴?” 一聲冷哼從身側(cè)響起旨剥,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤魄咕,失蹤者是張志新(化名)和其女友劉穎蚌父,沒想到半個(gè)月后梢什,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嗡午,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腊尚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婿斥。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哨鸭,死狀恐怖像鸡,靈堂內(nèi)的尸體忽然破棺而出只估,到底是詐尸還是另有隱情,我是刑警寧澤赖舟,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站豫喧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏讲衫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一涉兽、第九天 我趴在偏房一處隱蔽的房頂上張望篙程。 院中可真熱鬧,春花似錦虱饿、人聲如沸触趴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仇祭。三九已至,卻和暖如春乌奇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背华弓。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工困乒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迁霎。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓百宇,卻偏偏與公主長(zhǎng)得像考廉,于是被迫代替她去往敵國(guó)和親昌粤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涮坐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361