我在一个使用 Git/Gerrit 作为源代码控制/代码审查的小团队中工作。
当团队中的开发人员想要提交他们的工作时,他们提交/推送到 gerrit 并开始开发新功能。
此外,鼓励开发人员尽可能推动他们的工作,他们通常在已经提交的更改(通过挑选相关更改)之上工作,这些更改目前正在审查中。
问题是,当开发人员尝试推送更改时,他们也会推送更改的历史记录。作为副作用,这些更改会获得与相同更改的先前版本没有区别的新版本。此外,开发人员现在必须获得“伪造”许可(假设某些精心挑选的更改不是他的)
示例:假设亚当的一个分支的历史看起来像这样(更高的变化是最新的):
Change 3(作者:Adam,目前在职)
Change 2(Athhor:Charlie)
Change 1(作者:Bath)
大师
现在,更改 1,2 是从 gerrit 中挑选出来的,并且没有更改。
当亚当推送他的补丁时,他必须能够在更改 1,2 上伪造提交者,并且他们会获得更新的版本(与之前的推送没有任何区别)
有人可以建议如何避免这种行为吗?我们做错了什么吗?