提高PR之前的内部审查

3

背景
GitHub属于客户端。我们团队中有一些新手,有时会错过基本的命名规范和其他编码协议。因此,如果任何资深人员想要进行内部审核,除了创建PR之外没有其他办法。但是,这个PR会对客户可见。

问题:是否有可能使用工具(最好是GitHub提供的功能)进行内部审核,然后创建一个干净漂亮的PR呢?

我理解PR本身就是为了进行审核,但至少经过内部审核后,它将具有真正需要关注的问题,而不是一些微不足道/明显的问题。


新手能否对资深者拥有的分支开放PR? - choroba
你可以分享分支的URL,这样在创建PR之前就可以进去查看更改。 - eftshift0
@eftshift0 这并没有提供“并排”比较。 - paul
@choroba,那会太过分了。我也不想让他们觉得自己像孩子一样被对待。 - paul
坦白地说,让资深开发人员审查初级开发人员编写的代码并没有什么问题... 为什么不与客户达成协议,由_您的_资深开发人员进行第一轮审查,然后您可以在经过高级开发人员批准的代码上使用标签,以便客户开发人员可以查看? - eftshift0
1个回答

2
你可以创建一个新手分支(我们称其为dev1),该分支从未推送到远程(GitHub),还可以创建一个开发分支(我们称其为dev2),该分支被推送以创建PR。
初级开发人员将写入dev1
高级开发人员在合并dev1dev2之前,会比较dev1dev2,而不是使用PR进行审核。
称它们为dev1dev2(或类似的名称)会创建一个两步流程,并且不会让任何人觉得自己像孩子。
如果你不希望所有混乱的提交沿着dev1显示在最终合并到dev2(并推送到GitHub)的历史记录中,则可以在满意dev1的外观后,使用“git reset squashing”:Git书中这一页的“Squashing”段落给出了一个很好的例子。
操作如下:
首先,将HEAD移回到您满意的最后一个提交(可能是dev1dev2之间的最后一个公共提交):
git reset --soft <hash>

然后你运行:

git commit

那么,你可以从dev1dev2的最后一个公共提交点直接跳转回到你对dev1满意的最终状态,"压缩"所有中间混乱的提交。

在这个工作流程中,您可以在审查dev1时进行并排比较(通过将其与dev2进行差异比较),隐藏其开发过程中发生的所有问题(只有在使用git reset创建了干净的历史记录之后,才将dev1合并到dev2),然后将dev2推送到GitHub以创建PR。
在此过程结束时,您的客户只会看到干净版本的真正问题,并且只需要审查重要内容。
当然,这需要您团队中的每个人都能够独立访问项目(例如,通过服务器上的内部远程或类似方式)。因此,在您的特定环境中,此选项可能不实用。
如果内部远程不可行,则可以通过GitHub上的私有克隆实现类似的工作流程,如@choroba所建议的那样。
无论哪种方式,关键要素是:
  1. 拥有一个对客户隐藏的分支(在项目自身的克隆或分叉中)
  2. 在提交PR之前压缩所有混乱的提交,以使您的客户不会被一个充满不真正有意义的更改的混乱历史所分散注意力

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接