git:删除分支的Change-Id

时间:2019-04-30 04:20:08

标签: git gerrit

我有一个git存储库,其中有两个远程控制,一个远程执行Change-Id,另一个远程删除。 我有gerrit的commit-msg钩子,可为每个提交创建一个Change-Id。 我也有一个钩子,对于具有特定名称的分支,不会创建Change-Id。 我想要的是可以删除它的东西,而无需我手动修改每个提交。 我当前的工作流程:

  • 创建一个获取更改ID的提交
  • 移至指定分支机构
  • git是带有更改ID的补丁
  • 修改每个提交并删除Change-Id

有什么方法可以自动化最后一步?

1 个答案:

答案 0 :(得分:1)

您可以在应用补丁之前删除Change-Id行。

sed "/^Change-Id: /d" foo.patch | git am

sed中,/^Change-Id: /尝试查找以Change-Id:开头的行,而d删除该行(如果存在)。 foo.patch不变。没有Change-Id的内容将输出到stdout并传递到git am

要找到具有更精确图案的线,

sed "/^Change-Id:\s\+I[0-9a-f]\{40\}/d" foo.patch | git am