我正在尝试与我的朋友建立不错的发展模式。计划是我们在自己的计算机上进行独立开发,然后推到开发服务器进行测试,然后从Dev Server推到生产服务器(Heroku)。

问题是,我无法表现出git的行为。也许我只是不了解足够的,无法从根本上理解正在发生的事情。我已经在开发服务器上设置了存储库,但是当我克隆到个人计算机上时,我无法“推动”它,因为它抱怨推送到非抛售存储库。因此,我尝试将存储库分支并推开分支,但是现在我得到了很多快速的陈述,而且我认为我也不想要这些。

所以我的问题是这个。如何设置服务器,因此所有这些都“工作”?服务器不能是裸露的存储库,它需要在其中包含代码,以便我们可以测试该应用程序。我们希望能够平稳地从存储库推到自己的开发计算机。服务器需要能够推到Heroku(它已经可以做到这一点)。这是在我自己的服务器上,因此我可以完全访问我需要的工作。 (Ubuntu Server Edition 11.04)。

谢谢!

有帮助吗?

解决方案

默认情况下,您无法推到非验证存储库的原因是,非验证库具有与之关联的签出的工作副本。当您将更新推出已签出的分支时,工作副本将与自己的存储库不同步,除非您专门运行命令来更新它(您可以使用后接收器挂钩进行操作)。如果您知道这一点,并且无论如何都想推到非验证库,则可以设置 receive.denyCurrentBranch 配置属性 ignore git将允许推动。有关更多详细信息,我将您推荐给 博客文章 我一段时间以前写了(可能是由于更新),它描述了我在自己的网站上使用的类似设置。

请注意,我不仅仅是开发和生产服务器(每个服务器(每个都有自己的非生产存储库)),我还拥有第三个存储库,一个裸露的存储库,我将其推到首先,然后将其送往Dev;这样,我只从一个地方推到开发服务器,这有助于保持同步。

其他提示

为了阐述@David Zaslavsky的评论,我会在大多数时候设置一个裸露的存储库,然后使用类似的东西 git-deploy 推到开发服务器。您获得的语义与没有Heroku的Heroku相同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top