将本地合并推送到Gerrit Code Review

时间:2015-09-23 15:52:43

标签: git merge gerrit

我对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并提交,但现在它已处于待定状态,我想是因为它被标记了取决于放弃的 cn 提交。

我想在Gerrit master上合并 cn ,我该怎么做?在这种情况下行事的正确方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

当您推送合并提交ERROR - jmeter.util.XPathUtil: Type=Val=false Tol=false org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 58; The string "--" is not permitted within comments. jmeter.extractor.XPathExtractor: SAXException while processing (//Response[1]/WI_HASH) The string "--" is not permitted within comments. 以进行审核时,您还要推送ck进行审核,因为它尚未存储在存储库中。 Gerrit为每个尚不存在的提交创建一个新的“更改”。

有两种方法可以解决这个问题。

  1. 按原样推送cn(基于cn),然后当它合并时,Gerrit将为您创建合并提交(假设您使用“必要时合并”策略)。

  2. cy重新引导到主分支的最新头部并再次推送。

  3. 要使用选项1,只需恢复您放弃的cn版本,然后查看并合并它。

    对于选项2,按照选项1恢复更改,然后在本地重新定位并再次推送,或者使用UI上的“Rebase”按钮对其进行重新定位。

    在这两种情况下,合并提交cn都可以放弃。