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

没腿的鸟  金牌会员 | 2024-9-5 22:57:35 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 529|帖子 529|积分 1587

为了确保在使用 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  
    复制代码
  • 编辑 prepare-commit-msg 文件
    使用以下脚本内容来确保保留原始提交信息并在其末尾添加 Signed-off-by 行:
    1. [/code] [code]#!/bin/sh
    2. COMMIT_MSG_FILE=$1
    3. # 如果提交信息是合并提交,或者已经有签名,不修改
    4. if [ -f "$COMMIT_MSG_FILE" ]; then
    5.   if grep -q 'Signed-off-by:' "$COMMIT_MSG_FILE"; then
    6.     exit 0
    7.   fi
    8.   # 将原始提交信息读入变量
    9.   COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
    10.   # 获取当前的用户名和电子邮件
    11.   SIGN_OFF="Signed-off-by: $(git config user.name) <$(git config user.email)>"
    12.   # 重新写入提交信息,加上 'Signed-off-by'
    13.   echo "$COMMIT_MSG" > "$COMMIT_MSG_FILE"
    14.   echo >> "$COMMIT_MSG_FILE"
    15.   echo "$SIGN_OFF" >> "$COMMIT_MSG_FILE"
    16. fi
    复制代码

  • 赋予脚本执行权限
    1. chmod +x .git/hooks/prepare-commit-msg
    复制代码

解释



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


  • 执行提交操作
    举行一次新的提交,检查提交信息是否包罗你输入的消息以及 Signed-off-by 行。
  • 检察提交信息
    确保你的提交信息中既包含自定义消息,也包罗 Signed-off-by 行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

没腿的鸟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表