fix: 署名门禁正则锚定行首,避免误删正文中提到该短语的行

之前正则匹配行内任意位置,导致提交正文里描述性提到署名短语的整行被误删。
改为只匹配行首的真尾注(^\s*co-authored-by:...claude)。
scaffold 本地钩子与 template 门禁脚本同步修正。
已测:正文描述行保留、真尾注剥除。
This commit is contained in:
baozaotumao
2026-06-02 02:57:32 -07:00
parent f42633bbd2
commit fb91556832
+3 -2
View File
@@ -9,9 +9,10 @@ msg_file="${1:?用法: check-claude-attribution.sh <commit-msg-file>}"
include="$(git config --get scaffold.includeClaude 2>/dev/null || echo false)" include="$(git config --get scaffold.includeClaude 2>/dev/null || echo false)"
[ "$include" = "true" ] && exit 0 [ "$include" = "true" ] && exit 0
if grep -qiE 'co-authored-by:.*claude' "$msg_file"; then # 仅匹配行首的真尾注,避免误删正文里提到该短语的行
if grep -qiE '^[[:space:]]*co-authored-by:.*claude' "$msg_file"; then
tmp="$(mktemp)" tmp="$(mktemp)"
grep -viE 'co-authored-by:.*claude' "$msg_file" >"$tmp" grep -viE '^[[:space:]]*co-authored-by:.*claude' "$msg_file" >"$tmp"
mv "$tmp" "$msg_file" mv "$tmp" "$msg_file"
echo "🛡 已移除 Claude 署名(scaffold.includeClaude=false;保留请运行 ./scripts/claude-attribution.sh on" echo "🛡 已移除 Claude 署名(scaffold.includeClaude=false;保留请运行 ./scripts/claude-attribution.sh on"
fi fi