Git:测试提交没有推送

时间:2017-03-21 02:06:02

标签: git

我们有两个独立的团队正在开发相同的产品:设计和验证。 Designer添加了功能,运行一个简单的测试来检查设计是否已编译,并且正在运行一个非常基本的测试,需要将其传递给验证团队。 我的问题和关注点是:设计人员如何轻松安全地传递提交而无需将其推送到服务器?否则它可能是一个很长的提交历史,我想避免。 如果设计人员可以与验证团队合作而不将更改推送到服务器,那么所有这些提交都可以被压缩为单个提交然后推送。

3 个答案:

答案 0 :(得分:1)

  

不将它们推送到服务器

使用Git,你不必将自己限制在""" (一)服务器。

您可以添加为远程另一个服务器,专门用于QA测试,设计师可以在这里推送。
接收后的钩子可以:

  • 通过一些测试
  • 拒绝(重置)刚刚推送的提交,如果这些测试失败
  • 如果这些测试通过,则将相同的提交推送到实际的服务器。

换句话说,QA服务器充当设计器提交和实际服务器之间的网关。

另一种方法是将这些提交推送到(一)服务器,但是在专用分支中,由验证团队合并到测试传递的主人。

答案 1 :(得分:0)

您绝对不必使用commits限制git。这不是它的目的。最佳实践之一是Commit Early And Often。如果您想在存储库中有一些订单,则必须使用branches

在您的情况下,您可以使用branch来设计功能,当该功能完成后,设计团队可以在branch附近运行测试。这样做,验证团队将看到一个功能被合并,然后将验证它。

git有一个非常好的扩展名,可以让这项工作变得更加轻松git-flow.也许这就是你真正想要的。

答案 2 :(得分:0)

如果有合理的理由希望在不推送到中央服务器的情况下传递提交,您可以查看git-bundle,它允许您打包一个或多个提交并将它们作为单个文件直接发送

编辑:如果OP真的想要避免重写历史记录(即使在单独的分支上)并且有额外的提交,一种可能的解决方案(通常不推荐)是根本不创建提交,并简单地传递补丁文件。

  1. 开发人员进行他们想要的任何更改,然后运行git diff > MyChange.patch。他通过电子邮件发送给QA。
  2. QA检查与开发人员相同的提交,并运行patch -p1 < MyChange.patch。 QA现在与开发人员具有相同的状态,没有创建任何git提交。