git 提交无法自动生成change-id的问题

问题

        git push时报错,显示没有change-id

解决

方法1. 拉取commit-msg(未解决)

        change-id是通过hooks/commit-msg这个文件自动成的,报错提示也很明显,它想让你重新拉取这个commit-msg文件来生成change-id。

        gitdir=$(git rev-parse --git-dir); scp -p -P 29418 姓名@gerrit.cmss.com:hooks/commit-msg ${gitdir}/hooks/

        git commit --amend --no-edit

         git push origin HEAD:refs/for/develop

        网上绝大部分方法都是这么做,但这个方法对我不奏效,推送时仍然报没有change-id。

        替换别的有用的commit-msg、甚至替换hooks也不奏效。

        换一台笔记本提交,可以正常提交。

方法2. 手动写一个change-id(未解决)

        在上次提交的change-id基础上改几个数字或者字符,提交上去。

        这个方法在试了几次也不生效了。

        由于同一个项目我copy了几份,在删掉一些复制的文件夹后突然能正常提交了,不知道是否和这个原因相关

方法3. 删除husky(解决)

        1. 拉取项目文件,正常npm  install后

         2.把项目目录下,.git/config文件中 huskyPath = .husky 删除        

        3. 删除package.json里husky相关的两行代码

可以正常提交。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,你可以使用 Git 提交钩子自动添加 Change-Id,或手动添加它。下面是两种方法: 1. 自动添加 Change-Id:你可以使用 Git 提交钩子来自动添加 Change-IdGit 提交钩子是一些自定义脚本,可以在 Git 操作期间触发。你可以创建一个提交钩子脚本,使其在每次提交时自动添加 Change-Id。这样,你就不必手动添加 Change-Id 了。这里是一个示例提交钩子脚本: ``` #!/bin/sh commit_msg_file=$1 commit_msg=$(cat $commit_msg_file) if ! grep -q "^Change-Id:" $commit_msg_file; then change_id=$(uuidgen) echo "Change-Id: $change_id" >> $commit_msg_file fi ``` 将该脚本保存为 `commit-msg` 文件,并将其放置在 `.git/hooks` 目录下。确保该文件具有执行权限。现在每次提交时,Git 将自动为你添加 Change-Id。 2. 手动添加 Change-Id:如果你不想使用提交钩子来自动添加 Change-Id,你可以手动添加它。要手动添加 Change-Id,请按照以下步骤操作: a. 生成一个唯一的 Change-Id:你可以使用任何工具来生成一个唯一的字符串。例如,你可以使用 `uuidgen` 命令来生成一个 UUID。保存生成的字符串。 b. 将 Change-Id 添加到提交信息中:在提交信息的末尾添加一行 `Change-Id: <change-id>`,其中 `<change-id>` 是你在第一步中生成的唯一字符串。 c. 保存提交信息并提交:保存提交信息并使用 `git commit` 命令提交更改。现在你的提交应该包含一个有效的 Change-Id

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值