git - merge 提交没有更改 ID?

标签 git merge gerrit

我很难将一个分支重置为另一个分支。将它与 ours 策略 merge 后,我尝试通过 gerrit 进行推送。我收到类似“缺少更改 ID”的错误。默认情况下, merge 提交没有更改 ID。我试图下载用于自动更改 id 的 commit-msg Hook 。但它在 Windows 中没有帮助。知道如何在 merge 提交中添加更改 id 吗?

最佳答案

情况:您有一个提交需要推送到 gerrit,但该提交没有 change-id,gerrit 不会接受它。

解决方法:

  1. 从 gerrit 下载 commit-msg 钩子(Hook)

    $ scp -p -P 29418 TimCastelijns@server.timcastelijns.nl:hooks/commit-msg tims-project/.git/hooks/
    

    请将端口号、服务器地址和项目名称替换为您自己的。另外,更改 tims-project/.git/hooks/ 的路径取决于您在终端中的当前位置。钩子(Hook)必须进入 <project_dir>/.git/hooks/ .

  2. 转到您的 repo 文件夹并修改 merge 提交

    $ cd tims-project/
    $ git commit --amend
    

    在修改时 pop 的编辑器中,会显示当前提交及其提交消息。 这里什么都不做。只需退出并保存编辑器。由于 commit-msg Hook 是一个提交后 Hook ,任何提交(创建或修改)都会自动分配一个更改 ID。

  3. 推送到 gerrit

    $ git push origin HEAD:refs/for/master
    

    如果需要,用您自己的替换分支和远程。

关于git - merge 提交没有更改 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32836936/

相关文章:

git - 忽略 stable 中的文件夹,但不在 devel 分支中

git - 每次在 github org 上创建存储库时如何触发 jenkins?

file - 使用批处理脚本逐行合并两个文本文件

r - 传递性地映射标识符

python - 以不同的时间间隔合并并填充 Pandas 中的两个数据帧

git - 如何将 Drafts 推送到 Gerrit?

git-review -> 将草稿提升为代码审查

windows - 更改 Git 用户名

java - 如何使用 Google Cloud Shell 构建和部署我的代码

带有 gerrit 的 Git 镜像