2011-03-30 73 views
4

我的合作伙伴和我一直在讨论推销和回收影响公众可查看文件的回购的想法,而不是将回购存储在隐藏位置,而仅仅是在FTP文件我们觉得他们很好走。虽然能够直接推到“现场”会非常方便,但我不知道会产生什么负面影响(如果有的话)。Git“Live Server”最佳实践

非常感谢!

回答

4

我会推荐拉而不是推如果去这条路。

总是拉出成品,不要在现场服务器上合并,因为如果有冲突,你会争先恐后地解决它们。在测试环境中进行所有合并等。一旦所有产品都完好无损,请将完成的结果推送到生产分支的“裸机”回购,然后从生产机器git pull中完成。

是的,它可能是另一个失败点,但我认为弊大于利。

+0

感谢您的回复。这个过程是你经常做的吗? – JoeQuery 2011-03-30 21:44:50

+0

是的,我通常在'开发'分支本地开发,然后推到裸露的回购。然后从测试服务器上拉我'开发',确保一切都很好。然后融入'主'并将'主'推回裸回购。登录到生产服务器并拉'主'。不需要ftp,一切正常。 – RDL 2011-03-31 03:53:04

1

VCS不应该是部署工具(请参阅Using git below web root in production.):一个简单的ftp文件(使用git archive创建)就足够了。

如果您要使用Git,请在服务器端使用裸回购以推送,并使用post-receivehook更新代表您站点的工作树。

+0

以这种方式构建使用git的趋势。我看到的第一个是博客引擎Marley(https://github.com/karmi/marley),现在有麦子(https://github.com/creationix/wheat),它基于推动新的博客文章与Git。我也正在改变我的网站做同样的事情。在所有情况下,用例都是一个博客,它不同于webapp。是否应该以这种方式使用VCS *是一回事,但确实越来越多地以这种方式使用git。 – 2011-03-30 19:18:55

+0

@Matt:当然,这就是为什么我用一种实际的方式完成了我的答案。 – VonC 2011-03-30 19:51:14

+0

我刚刚开始使用git作为协作科学创作的“数据库”的新方法。它运作良好。 Git是一个工具。和其他任何产品一样,它的价值在于其独特的功能。想象一下,你想制作一个大型的协作wiki并用git数据库备份它,直接从git提供文件可以提供部署优势。 – 2011-03-30 19:56:35

1

这听起来像你是脚本部署的候选人。我强烈建议看看CapistranoWebistrano。借助这些工具,您可以轻松部署公共可用的git repo,并仅更新服务器上必需的代码。回购的缓存副本保存在服务器上,因此您只能传输更改集。我提到的两个工具还允许您轻松地回滚更改,管理数据库迁移等.Webistrano实质上是Capistrano的Web前端,它是一种红宝石。我也听说过关于弗拉德的好消息,但我并不熟悉它。祝你好运。

0

我“推”我的地方发展到Live服务器是这样的:

1.-配置服务器上的钩 的.git /挂钩/后收到
包括此行:

 git pull 
    git reset --hard 

警告:reset --hard将删除活动工作区上的任何更改。 (见下文)

2:给可执行权限,该文件

chmod +x .git/hooks/post-receive 

3.-让现场服务器上的“不裸”仓库接收推送

git config receive.denyCurrentBranch ignore 

我在我的本地副本(用于开发)上工作,该副本直接从实时服务器克隆。 和刚刚

git push 

部署为了避免我的约定冲突: 推 决不直播现场工作或提交服务器之前,始终拉。

我希望你觉得这个方法很有用。