8

一个简单的例子。我对 Gerrit 进行了更改,这会破坏 CI 构建或审阅者不满意。然后我用另一个提交来修复我的更改。在许多情况下,这是一个小的补丁集,我不想要新的 gerrit 审查,而是作为原始审查中的新补丁集。

我知道这可以通过使用 amend 或 rebase 和 squashin 来实现。

这是唯一的选择吗?我们有点担心必须使用变基和压缩来重写历史。

谢谢,

乔。

4

4 回答 4

3

这已在 gerrit 邮件列表中进行了讨论:http ://groups.google.com/group/repo-discuss/browse_thread/thread/fc4246f02b77aa9a

于 2011-10-19T12:42:30.357 回答
3

git commit --amend效果很好;这就是我们大部分时间的做法。

于 2011-06-23T00:12:18.373 回答
0

Gerrit “补丁”旨在替代正在审查的原始更改,而不是子提交。第二个和后续补丁不是重写历史,它们是当前的替代品。因为历史还没有被书写,所以这样的“修正”是合适的。

重新定位意味着您更改原始作品的血统。修改还会进行新的提交,因此出于法律目的的提交时间戳,但不会更改沿袭。

如果您要让 CI 构建在“集成”分支上并接受不稳定时期,您可以先提交“修复”以供审查,然后“尝试构建”更改提交以保持理智,并且只进行 CI 构建当这些评论合并时。这意味着永远不需要更改历史,但是当您在设计中迭代各种清洁尝试时,您可能会获得更多的历史。

Gerrit/Git 允许重写,因此不太关心出处的开源可以保持更整洁的历史。关心的企业可以使用更准确的历史方法。

于 2012-07-06T14:21:48.343 回答
0

值得注意的是,从 2.11 版(2015 年 4 月发布)开始,Gerrit 提供了使用 Web UI 编辑更改的可能性。这个特性在官方文档中有深入的描述。

查看差异时,只需单击编辑按钮:

根据需要编辑文件,然后保存文件。您可以编辑多个文件,然后点击发布编辑以创建新的补丁集。

于 2015-04-29T20:56:09.757 回答