为更大的基于Web的应用程序设置GIT和工作流程

时间:2013-06-29 04:23:54

标签: git version-control

我们有一个庞大的基于内部网络的系统,目前由一个由3名开发人员组成的团队维护。 我们目前的设置是1个开发服务器和1个生产服务器 - 可能很快就会有2个生产服务器落后于负载均衡器 我们当前的工作流程是开发人员在开发服务器上更新文件。每当我们准备好进行更改时,我们都会将rsync代码库生产到生产中。 我们经常快速发展并改变事物。很长一段时间以来,我们一直希望开始使用版本控制来更好地控制我们所做的更改和整体代码质量。唯一的问题是如何正确地做到这一点 什么是最有效的方式,因为我们仍然需要保持快速移动。

我遇到的一些问题是:

  • 我们的主代码库包含带有第三方库,图像等的目录。我们很少接触它们。这些也应该被跟踪吗?
  • 只有一个主分支可以工作吗?因此,每个开发人员都会使用主分支,然后将其转移到Main Dev,然后再转到Production。
  • 生产应该设置为裸仓还是无关紧要?

这是我提出的设置。请让我知道您的想法并提出改进建议。 enter image description here

2 个答案:

答案 0 :(得分:1)

Horrer所有开发人员在开发服务器上实时更新文件。没有源代码控制

At'a Boy为您修复您的架构和工作流程。在很久以前的工作中,我处于这种情况。

  • 是的,你绝对应该检查你的第三方图书馆,图片等。你很少接触它们,因为如果你更新它们,世界就会崩溃。您不能将第二台生产服务器联机,除非您可以像第一台那样完全构建它。每件事都需要运行所有相同软件的相同版本。在我的项目中,我们在源代码管理中安装了服务器上的所有内容。

  • 是的,只使用master,你不想一次改变太多的活动部件。随着时间的推移再次访问,看看您是否准备好/需要分支工作流程。

  • 您不能使用裸仓库。 Web服务器没有文件可以运行。

干得好,问题和设计都很好。

我肯定会为每个开发人员使用子域名。我工作的另一个地方,一个商业软件公司,邪恶的聪明人,这样做。

我的一个建议是让stage.project.com在Production服务器上运行。它将使用生产数据源,让您在生产环境中进行测试。

团队中的每个人都应该观看。 Git 4岁及以上http://www.youtube.com/watch?v=1ffBJ4sVUb4以及额外信用额度观看Advanced Git http://vimeo.com/37408017

答案 1 :(得分:1)

我不喜欢你的计划是部署阶段。为什么?因为1)它是一个手动过程,2)它是基于拉动的。我也不确定我对生产服务器上的版本控制存储库的看法。

我想建议的是为生产服务器构建一个rsync的小脚本,包括rsync的--delete--exclude .git/选项。如果您愿意,可以将当前提交的SHA1写入一个小文件,这样您就可以随时了解在线内容。

理想情况下,该脚本不会直接同步到您的文档根目录,而是直接同步到新创建的目录,然后将文档根目录符号链接到该目录。使用时间戳命名该目录,并且可能是提交SHA-1。这样,如果任何事情都没有按照预期的方式运行,你只需要调整符号链接的目标。