如何更改补丁集并将其作为新补丁推送?

时间:2014-06-27 17:13:49

标签: gerrit

是否可以获取现有的补丁集(尚未合并到我的本地计算机中),更改并将其作为新的补丁集推送?

3 个答案:

答案 0 :(得分:29)

@Uncletall将所有步骤和链接放在一起,唯一的一点是你不应该删除changeId,你应该做一个git commit --amend。我给他一个+1。

应该是这样的

  1. 在Gerrit上,转到评论,在下载字段中选择" checkout",而不是" pull"," cherry-pick"或者" patch",然后复制命令。

  2. 在git项目中粘贴上面复制的链接

    这将创造一个独立的头部,这是一个没有名字的分支(我已经穿过沙漠,没有名字的马,在雨中感觉很好。)

    < / LI>
  3. 马的名字! git checkout -b new_branch_name

  4. 更改您想要的内容并对所需文件执行git add

  5. git commit --amend保持相同的Change-Id

  6. 推送您的更改:

    git push origin <new_branch_name>:refs/for/<thatgerritbranchyouwanttochange>

答案 1 :(得分:4)

在官方文档中咨询Trying out a Change

以下是您的工作:

  1. 按照文档
  2. 中的说明检查更改
  3. 从FETCH_HEAD
  4. 创建本地分支
  5. 修改您的代码
  6. 使用git --amend提交更改并删除提交消息中的Change-Id
  7. 系统会自动添加新的Change-Id,这会产生新的更改集
  8. 推送您的更改以供审核,Gerrit会将其视为新的更改集
  9. 正如@ magnus-bäck所指出的,我正在描述如何创建一个新的Change-Set 。如果您想向当前评论中添加新的修补程序集,则应删除Change-Id

答案 2 :(得分:4)

请按照以下步骤操作:

  1. cherry-pick 您的补丁(从gerrit UI)到您的机器。
  2. 修改内容并运行git add <modified file>
  3. 使用弹出COMMIT-EDITMGS窗口的git commit --amend修改最后一次提交。相应保存。
  4. 使用git push origin HEAD:refs/for/branch_name

    将您的更改推送到gerrit

    它将创建一个新的补丁集。