Git設定全域性hooks規範化客戶端提交日誌記錄

2021-08-30 08:33:37 字數 2388 閱讀 8471

背景:

專案由於git進行管控,對commit的日誌需要進行規範化輸出,git的hooks預設管控單倉庫,在.git/hooks裡面,預設關閉,如果啟用的話將字尾.sample去掉。系統提供的commit檢驗是git文字的最後是否有空格,根據規定,需要進行規則自定義,實現專案提交記錄如:

1.增加:..功能;(***-***)

2.修改:..功能;(***-***)

3.解決:..問題;(***-***)

4.刪除:刪除某部分**或資源檔案的過程;(***-***)

5.備註:說明乙個過程或者需要闡述某個階段的變化內容;(***-***)

6.優化:在邏輯或者設計結構上進行**優化或者規範化的調整;(***-***)

一、建立指令碼

1、commit-regulars

^[0-9].增加:..*;\(.*-.*\)$

^[0-9].解決:..*;\(.*-.*\)$

^[0-9].備註:..*;\(.*-.*\)$

^[0-9].優化:..*;\(.*-.*\)$

^[0-9].修改:..*;\(.*-.*\)$

^[0-9].刪除:..*;\(.*-.*\)$

這個指令碼主要為自定義的政策匹配規則

2、commit-msg

#!/bin/sh

filename=$1

message=$(

# 提交內容的正規表示式檔名,一行乙個正則

regularfilename=".git/hooks/commit-regulars"

success=0

echo $message

while ifs='' read -r line || [[ -n "$line" ]]; do

line=$(echo $line | tr -d '\r')

if [[ $message =~ $line ]]; then

success=1

break

fidone < $regularfilename

if [ "$success" == "0" ]; then

echo 你本次版本提交不符合日誌提交規範. >&2

echo 1.日誌中每一點描述都以序號做開頭如 "1." 做開頭並遞增. >&2

echo 2.日誌中不要包含全形的中文標點符號. >&2

echo 3.日誌每個描述結束以半形符號 ";" 分號做結束符. >&2

echo 4.必須在jira系統上建立對應的問題點,jira 系統上的問題點在日誌中要以問題點的編號做結尾並兩端加括. >&2

echo 請補充日誌說明資訊後再提交**,例如: >&2

echo 1.增加:..功能;新增**或者調整原始sdk**實現某需求的過程. >&2

echo 2.修改:..功能;當某個需求功能還在繼續完善的過程. >&2

echo 3.解決:..問題;當接受到問題 bug 反饋後進行修復的過程. >&2

echo 4.刪除:刪除某部分**或資源檔案的過程. >&2

echo 5.備註:說明乙個過程或者需要闡述某個階段的變化內容. >&2

echo 6.優化:在邏輯或者設計結構上進行**優化或者規範化的調整. >&2

echo *******************禁止空格資料***************** >&2

exit 1

fi

此指令碼為在客戶端執行commit後進行commit的日誌格式化匹配。

將這兩個指令碼檔案放到本地專案的.git/hooks中,該專案每次提交後即可完成日誌記錄的約束。不過此方法僅適用於單專案,那麼是否可以進行一次設定,該客戶端下的所有有效呢,請看如下。

二、全域性設定commit-msg的hooks

1、建立資料夾:

mkdir -p ~/.git_template/hooks
該指令會在c盤使用者目錄下建立目錄.git_template/hooks,如果不熟悉指令的也可手工進行建立資料夾。

2、將一中的兩個指令碼檔案放入建立好的資料夾中

3、設定全域性配置

git config --global init.templatedir ~/.git_template
如上三步完成後即可在建立新的使用git管理的專案的時候自動將全域性模版拷貝至專案根目錄/.git/目錄下,如果完成如上三步後需要對已經存在對git專案使用該模版,可移動至目標專案根目錄並執行git init即可。

全域性變數宣告的規範化

lua將環境本身儲存在乙個全域性變數 g中,g.g等於 g 為了對全域性命名空間更好的管理,最好是顯示的宣告每乙個變數,可以通過使用metamethod來改變 g的行為來進行規範 宣告新的變數,使用rawset繞過metamethod的限制 保證宣告的變數不為nil,如果宣告乙個nil變數,等於該變...

資料規範化

資料分析之前,我們通常需要先將資料標準化 normalization 利用標準化後的資料進行資料分析。資料標準化也就是統計資料的指數化。資料標準化處理主要包括資料同趨化處理和無量綱化處理兩個方面。資料同趨化處理主要解決不同性質資料問題,對不同性質指標直接加總不能正確反映不同作用力的綜合結果,須先考慮...

資料規範化

資料歸一化是指把資料壓縮到 0,1 的區間內。sklearn.preprocessing.minmaxscalar 將資料壓縮到min到max組成的區間,並使其結果落在0到1的範圍內。x x mi nmax min sklearn.preprocessing.standardscalar 將資料轉換...