一个简单的例子。我对Gerrit进行了更改,这打破了CI构建或审阅者不满意。 然后我用另一个提交来修复我的更改。在许多情况下,这是一个很小的补丁集,我不想要一个新的gerrit审查,而是在原始审查中作为一个新的补丁集。
我知道这可以通过使用ammend或rebasing和squashin来实现。
这是唯一的选择吗?我们有点担心必须使用变基和挤压来重写历史。
谢谢,
蛟。
答案 0 :(得分:3)
git commit --amend
效果很好;我们大部分时间都是这样做的。
答案 1 :(得分:3)
这已在gerrit邮件列表中进行了讨论:http://groups.google.com/group/repo-discuss/browse_thread/thread/fc4246f02b77aa9a
答案 2 :(得分:0)
Gerrit“补丁”意味着替代正在审核的原始更改,而不是子提交。第二个和后续补丁不是重写历史记录,它们是当前的替代品。因为这样的“修正案”是合适的,因为历史尚未写入。
重新定位意味着您可以更改原始作品的谱系。修改也会出于法律目的而进行新的提交,从而提交提交时间戳,但不会更改谱系。
如果您要在“集成”分支上构建CI并接受不稳定时段,则可以首先提交“修复”以进行审核,并为完整性提供“尝试构建”更改提交,并且仅在合并这些评论时进行CI构建。这意味着永远不需要改变历史,但是当您在设计中重复进行各种干净尝试时,您可能会获得更多的历史。
Gerrit / Git允许重写,以便开源,更少关注来源,可以保持更整洁的历史。关心的企业可以使用更准确的历史方法。