澄清使用VCS,如Git

时间:2009-09-01 19:58:52

标签: git dvcs

我了解基本工作流程以及工作流程的工作原理。但是,假设我的linux工作站上有一个本地存储库。现在,我还在远程DC的VPS上有一个生产箱。如果我想将新代码推送到生产箱,那么最好的方法是什么?我不想在盒子上有一个Git repo,它应该只有我的网页代码(php / mysql)。

如何通过发送所有文件来推送对生产框的新更改?

2 个答案:

答案 0 :(得分:4)

管理Web内容的一种方法是在生产框上创建“裸”存储库。这是一个没有工作副本的存储库。如果要部署新代码,可以推送到此存储库进行更新。然后,登录到生产框并从裸存储库中到您的实际部署目录(也是Git存储库)。

请注意,生产盒上的这些存储库都不需要被视为“主”存储库;您可以将源代码保存在其他位置,并根据需要推送到生产环境。

您需要两个存储库的原因是Git不支持直接推送到具有工作副本的存储库。 Git历来允许你这样做(通常会产生意想不到的后果),但是新版本强烈建议你不要这样做。

我使用上述技术来管理一些网站,它的效果非常好。一个好处是,如果我真的需要,我可以在生产机器上修补一些东西,在那里提交,然后将更改拉到我的开发库中。以这种方式进行的更改不太可能意外丢失。

答案 1 :(得分:1)

所以我认为你可能对存储库的工作方式存在误解,你的存储库可以在你想要的任何地方......它并不重要,它甚至可以在github或VPS上。基本的是,当你工作时,你做提交,(使用git这些是在本地存储库中),当你准备应用这些更改你“推它们”时,这将发送增量(只有对你的更改)码)。

当您准备好在生产箱上进行更改时,您将登录到服务器并从您的仓库中提取更改并进行部署(可能包括重新启动或迁移您的数据库...这通常被称为食谱)