hookehuyr

fix(husky): 修复 CHANGELOG 自动更新条件判断

- 简化 prepare-commit-msg 的条件判断
- 只跳过 merge 提交,其他情况都执行
- 修复了部分提交 CHANGELOG 没有自动更新的问题

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
......@@ -25,18 +25,9 @@ NC='\033[0m' # No Color
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2 # commit 来源:message/template/merge/squash等
# 只在正常的 commit 时执行,跳过 merge/rebase/amend
# amend 时 COMMIT_SOURCE 为空
if [ "$COMMIT_SOURCE" = "message" ] || [ "$COMMIT_SOURCE" = "template" ] || [ "$COMMIT_SOURCE" = "" ]; then
# 检查是否是 amend 操作(通过检查是否已有 commit)
# 如果 HEAD 存在且不是初始提交,可能是 amend
if git rev-parse HEAD >/dev/null 2>&1; then
# 有 HEAD,检查是否是正在 amend
# 简单的判断:如果已经有 commit 且当前没有在 rebase 等操作中
# 这里我们允许继续,因为关键在于 post-commit 的 --no-verify
:
fi
# 只跳过 merge 提交,其他情况都执行
# 这样可以确保无论使用何种方式提交(-m/-C/-c等),CHANGELOG 都会被更新
if [ "$COMMIT_SOURCE" != "merge" ]; then
# 读取 commit message
if [ -f "$COMMIT_MSG_FILE" ]; then
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
......
This diff could not be displayed because it is too large.