将本地合并推送到 Gerrit Code Review
Push local merge to Gerrit Code Review
我对 Git/Gerrit 比较陌生。
我不得不为客户解决我们软件旧版本中的一个错误。我将本地 Git 重置为与此版本对应的提交,然后创建了一个新分支(我们称之为 C),解决了错误并在本地新提交了更改分支。最后我切换到Master并将新分支C合并到这里。所以情况是这样的:
c1-> .. ->cx->cy (version of the custormer)->..->cz (Master/Origin)----->ck (merge commit)
| ^
->cn (branch C) (bug fix)--------------------------------|
我使用 Eclipse 作为编辑器,使用 eGit 来管理 Git 提交。所以我将我的存储库推送到 Gerrit。我预计只有提交 ck 被推送(这是 Master 分支上唯一的新提交)但是 cn 也被推送了。
我在 Gerrit 上放弃了 cn 并且 ck 被标记为 +2 并提交了,但现在它处于 pending 状态,我想因为它被标记为 depending在废弃的 cn commit.
我想在Gerrit master上合并cn,怎么办?在这种情况下,正确的行为方式是什么?
谢谢
当您推送合并提交 ck
进行审核时,您也会推送 cn
进行审核,因为它尚未在存储库中。 Gerrit 为每个尚不存在的提交创建一个新的 'change'。
有两种方法可以解决这个问题。
按原样推送 cn
(基于 cy
),然后在合并时 Gerrit 将为您创建合并提交(假设您使用 'Merge if necessary'策略)。
Rebase cn
到 master 分支的最新头部并再次推送它。
要选择选项 1,只需恢复您放弃的 cn
版本,然后查看并合并它。
对于选项 2,恢复选项 1 中的更改,然后在本地重新设置基准并再次推送,或者使用 UI 上的 'Rebase' 按钮重新设置基准。
在这两种情况下,合并提交 ck
都可以放弃。
我对 Git/Gerrit 比较陌生。 我不得不为客户解决我们软件旧版本中的一个错误。我将本地 Git 重置为与此版本对应的提交,然后创建了一个新分支(我们称之为 C),解决了错误并在本地新提交了更改分支。最后我切换到Master并将新分支C合并到这里。所以情况是这样的:
c1-> .. ->cx->cy (version of the custormer)->..->cz (Master/Origin)----->ck (merge commit)
| ^
->cn (branch C) (bug fix)--------------------------------|
我使用 Eclipse 作为编辑器,使用 eGit 来管理 Git 提交。所以我将我的存储库推送到 Gerrit。我预计只有提交 ck 被推送(这是 Master 分支上唯一的新提交)但是 cn 也被推送了。 我在 Gerrit 上放弃了 cn 并且 ck 被标记为 +2 并提交了,但现在它处于 pending 状态,我想因为它被标记为 depending在废弃的 cn commit.
我想在Gerrit master上合并cn,怎么办?在这种情况下,正确的行为方式是什么?
谢谢
当您推送合并提交 ck
进行审核时,您也会推送 cn
进行审核,因为它尚未在存储库中。 Gerrit 为每个尚不存在的提交创建一个新的 'change'。
有两种方法可以解决这个问题。
按原样推送
cn
(基于cy
),然后在合并时 Gerrit 将为您创建合并提交(假设您使用 'Merge if necessary'策略)。Rebase
cn
到 master 分支的最新头部并再次推送它。
要选择选项 1,只需恢复您放弃的 cn
版本,然后查看并合并它。
对于选项 2,恢复选项 1 中的更改,然后在本地重新设置基准并再次推送,或者使用 UI 上的 'Rebase' 按钮重新设置基准。
在这两种情况下,合并提交 ck
都可以放弃。