Git远程测试

Git远程测试,git,testing,Git,Testing,我曾经使用Github作为备份或中央存储库,并在本地进行开发和测试 现在我有了一台远程测试机器,希望能够将本地提交推送到远程,以便远程工作目录更新,从而允许我对内容运行测试 1我找到的大多数设置遥控器的说明都是使用-bare init。据我所知,这意味着远程设备缺少一个工作目录并接受推送。当我尝试推送时,设置一个无裸遥控器会触发一个错误。如何完成上述工作流程 2这个工作流程是个好主意吗?我应该在远程机器上除了裸repo之外还有一个测试repo吗。我从开发推动到裸回购,然后,当我准备好测试时,我从

我曾经使用Github作为备份或中央存储库,并在本地进行开发和测试

现在我有了一台远程测试机器,希望能够将本地提交推送到远程,以便远程工作目录更新,从而允许我对内容运行测试

1我找到的大多数设置遥控器的说明都是使用-bare init。据我所知,这意味着远程设备缺少一个工作目录并接受推送。当我尝试推送时,设置一个无裸遥控器会触发一个错误。如何完成上述工作流程

2这个工作流程是个好主意吗?我应该在远程机器上除了裸repo之外还有一个测试repo吗。我从开发推动到裸回购,然后,当我准备好测试时,我从裸回购拉动到测试回购


如果这很重要,我会问一个关于Rails项目的问题,但我没有这样标记这个问题,因为我不明白为什么会这样。

在我们的项目中,我们这样做的方式是为每个测试服务器staging、test、qa都有一个单独的分支。当您想将某些更改部署到其中一台服务器时,只需将它们合并到该服务器的特定分支中,然后使用Capistrano进行部署。

在大多数情况下,您不想将其推入非裸存储库。原因是,推送只更新历史记录,而不更新工作目录;这一点在本节中进行了解释


所以,是的,你的第二个建议是可行的。您甚至可以使用自动更新您的测试存储库

我建议使用一个用于推送的裸存储库和另一个用于从中提取测试运行位置的存储库。这将更容易理解,而且当您决定从头开始测试环境并重新创建它时,不必太小心。如果它们在同一台服务器上,测试repo可以为中心服务器设置“备用”,这样就不会存储使用git clone-shared创建的两次对象

即使使用此设置,您也可以轻松地自动运行测试。只需在中央存储库中安装一个post-receive或post-update挂钩,即可运行测试。甚至在contrib/continuous的git源代码中也有现成的实现,您可以根据自己的需要进行调整

这并不是说你不能用工作目录设置推送存储库。Git将不允许您推送到签出的分支,因为它不知道如何在推送过程中更新它,也不知道以后如何更新它,但这可以通过使用“分离头”来解决。但是,这将非常混乱,并且在决定重建测试环境时,您可能会意外删除重要数据