最新电影在线观看,jrs低调看直播,avav天堂,囯产精品宾馆在线精品酒店,亚洲精品成人区在线观看

Git 交互式變基修改commit描述

1. 交互式變基

之前我們分享:常用的 Git 提交規范!,團隊協同開發可能會強調git commit使用同一的格式。

同時,在 Git Push 時對 Commit 進行檢查是確保團隊規范執行的關鍵環節。

實際工作中,可能會遇到需要修改git commit描述的情況,比如,有如下幾次提交

我們revert掉第二次和第三次提交:

這兩條revert的提交可能過不了push檢查。此時如何修改這兩條commit的描述呢?

輸入如下指令啟動交互式變基

git rebase -i [startpoint]

[startpoint]可以是一個提交的哈希值或者是HEAD~n表示相對位置的表達式。

例如,如果我們想修改哪個提交,就可以啟動交互式變基到哪個提交。如,我們想修改倒數第二個的提交信息,有兩種方法:

方法一:git rebase -i到倒數第三個提交:

git rebase -i 01743486d4b11231b6532729bc0b9ef9cc970bd8

方法二:可以運行git rebase -i HEAD~2到倒數第二個提交。

把需要修改的commit從pick指令修改為reword指令,保存、退出。

就可以重新編輯:

修改最近一次提交的描述信息,有兩種方式:

  • git rebase -i HEAD~1
  • git commit --amend

2. 校驗鉤子

我們可以在commit階段或者push階段創建校驗鉤子。

接著常用的 Git 提交規范!這篇文章里的git commit模板:

對應的.git/hooks/commit-msg校驗邏輯設計為:

#!/usr/bin/env python3
import re
import sys

def validate_commit_message(msg):
    # 檢查第一行格式
    first_line = msg.split('\n')[0]
    if not re.match(r"^(feat|fix|refactor|test|chore|style|docs): .+", first_line):
        return"第一行格式錯誤!應為:<類型>: 主題"
    
    # 檢查必填字段
    required_fields = ["修改內容:", "影響范圍:", "自測情況:", "相關鏈接:"]
    for field in required_fields:
        if field not in msg:
            return f"缺少必填字段:{field}"
    
    return None

if __name__ == "__main__":
    commit_msg_file = sys.argv[1]
    with open(commit_msg_file, 'r') as f:
        msg = f.read()
    
    error = validate_commit_message(msg)
    if error:
        print(f"COMMIT MESSAGE ERROR: {error}")
        print("提交格式應為:")
        print("<類型>: 主題")
        print("修改內容:...")
        print("影響范圍:...")
        print("自測情況:...")
        print("相關鏈接:...")
        sys.exit(1)

設置執行權限:

chmod +x .git/hooks/commit-msg

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 1
收藏 2
關注 33
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧