当前位置: 首页> 财经> 产业 > git提交自动带上 Signed-off-by信息

git提交自动带上 Signed-off-by信息

时间:2025/7/16 23:58:51来源:https://blog.csdn.net/YINHAOXU1/article/details/141937967 浏览次数:1次

为了确保在使用 Signed-off-by 签名的同时保留你的提交消息,你需要修改 prepare-commit-msg 钩子脚本,以便它不会丢失原始的提交信息。

增加prepare-commit-msg 钩子以保留提交消息

prepare-commit-msg 钩子的目的是在提交信息文件中插入额外的内容,而不是替换或丢失原始消息。我们可以修改钩子脚本来确保原始的提交消息保持不变。

以下是一个改进的 prepare-commit-msg 脚本,它会保留原始提交消息并在末尾添加 Signed-off-by 行:

  1.  

    touch .git/hooks/prepare-commit-msg  
  2. 编辑 prepare-commit-msg 文件

    使用以下脚本内容来确保保留原始提交信息并在其末尾添加 Signed-off-by 行:

     
    #!/bin/shCOMMIT_MSG_FILE=$1# 如果提交信息是合并提交,或者已经有签名,不修改
    if [ -f "$COMMIT_MSG_FILE" ]; thenif grep -q 'Signed-off-by:' "$COMMIT_MSG_FILE"; thenexit 0fi# 将原始提交信息读入变量COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")# 获取当前的用户名和电子邮件SIGN_OFF="Signed-off-by: $(git config user.name) <$(git config user.email)>"# 重新写入提交信息,加上 'Signed-off-by'echo "$COMMIT_MSG" > "$COMMIT_MSG_FILE"echo >> "$COMMIT_MSG_FILE"echo "$SIGN_OFF" >> "$COMMIT_MSG_FILE"
    fi
    

  3. 赋予脚本执行权限

    chmod +x .git/hooks/prepare-commit-msg

解释

  • 检查是否已经有签名:脚本首先检查提交信息中是否已经包含 Signed-off-by 行,如果有,脚本不做任何更改。
  • 读取原始提交信息:脚本读取提交信息并将其存储在变量中。
  • 重新写入提交信息:脚本将原始提交信息和 Signed-off-by 行写回到提交信息文件中。

测试

  1. 执行提交操作

    进行一次新的提交,检查提交信息是否包括你输入的消息以及 Signed-off-by 行。

  2. 查看提交信息

    确保你的提交信息中既包含自定义消息,也包括 Signed-off-by 行。

关键字:git提交自动带上 Signed-off-by信息

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: