2015-10-20 78 views
2

我正在爲團隊實施git模板提交消息。 我已經 添加一行做了它通過.git/hooks/prepare-commit-msg鉤:如何強制「git commit -m」打開編輯器

cat ".gitmessage" >> "$1"

而且我已經配置了以下:

git config --local commit.template .gitmessage

那麼,模板功能工作正常,但只當git commit被調用時 沒有-m標誌。

不幸的是,所有的團隊成員的工作流程是:

git add ... 
git commit -m "Some message" 

問:如何強制混帳總是打開編輯器編輯的消息,即使當git commit -m ...命令調用 ?

+4

使用'-m'的重點是你可以跳過打開編輯器並定義消息內聯 –

+1

我會禁止他們直接推入上游主機並請求他們創建請求。如果提交消息不符合質量標準,請拒絕拉取請求。 – hek2mgl

+0

您可以將模板保存在某個文件「模板」中,然後運行「git commit -F template」以便從該文件獲取提交信息。 (這是您的解決方案的替代方案,但-m本身意味着您要跳過編輯器) – love

回答

0

您可以修改commit-msg預掛鉤來實現此目的。例如,您可以檢查提交消息中的行數(請查看下面的示例);使用一些正則表達式來檢查模板是否受到尊重;等

#!/bin/bash 

# Check if the number of lines is greater than 3 
commit_msg_file="${1}" 
minimum_lines=3 
num_lines=$(wc -l "${commit_msg_file}" | cut -f1 -d' ') 

if (($num_lines < $minimum_lines)); then 
    echo >&2 "Error!" 
    exit 1 
fi 

檢查thisthis以供參考。