Git:推荐的Web开发设置

use*_*091 9 git gitolite

两周以来,我一直在努力在我们的办公室实施Git.不是缺乏文档,而是丰富的示例,教程和git的各种用途让我对Web开发的推荐设置感到困惑.

我想我有一个不错的设置,但在进入另一个结构之前,我想咨询更有经验的人.我有以下几点:

  • 工作站推送到本地登台服务器(A)
  • 本地登台服务器与gitolite一起使用以正确划分角色
  • 钩子自动将对登台服务器的任何更改推送到生产服务器上(B)

这可视化如下: 在此输入图像描述

这有意义吗?我们有各种较小的PHP网站,没有什么比这更复杂的了.我的疑虑是:

  • 我应该使用什么样的"钩子"(B)?
  • 我还应该在生产服务器上运行gitolite吗?我觉得我不应该,因为毕竟只是一个用户将内容上传到服务器(登台服务器上的挂钩),但我不确定.
  • 我的出发点是:我们在生产服务器上有所有网站,还没有登台服务器和工作站.在初始设置时,将它们"拉"到舞台和工作站的方便方法是什么?

现在,以下问题是一些额外的想法,目前不是最重要的,但如果你碰巧知道更多,请分享你的想法:

  • 为简单起见,我更喜欢能够git push从工作站运行并更新登台服务器和生产服务器.但有时,在上线之前,只更新登台服务器并首先查看那里的内容可能会有用.有一个简单的解决方案吗?

  • 实际上,我们不仅有一个而且有几个不同的生产服务器.但只有一个登台服务器.有没有办法配置不同的生产服务器,以便git自动将它们推送到正确的服务器?

在此先感谢分享您的想法!

Fab*_*bio 3

  • (B) 我应该使用什么样的“钩子”?

您应该使用post-receive 或 post-update 挂钩来执行此操作

  • 我还应该在生产服务器上运行 gitolite 吗?我觉得我不应该,因为毕竟只有一个用户将东西上传到服务器(登台服务器上的挂钩),但我不确定。

由于您提到的原因,这不是强制性的,但由于 gitolite 的设置非常简单,所以不会有什么坏处

  • 我的出发点是:我们在生产服务器上拥有所有网站,但在临时服务器或工作站上还没有。在初始设置时,将它们“拉”到暂存和工作站的便捷方法是什么?

对于它们中的每一个,您都可以简单地执行这些命令

cd /path/of/project
git init
# optionally create and edit your .gitignore file before the next step
git add .
git commit
Run Code Online (Sandbox Code Playgroud)

然后从临时服务器运行git clone命令。

  • 为简单起见,我更喜欢能够从工作站运行 git Push 并更新登台服务器和生产服务器。但有时,在上线之前仅更新登台服务器并先检查那里的内容可能会很有用。有简单的解决方案吗?

我看不到完成此任务的简单解决方案,但是我不喜欢您的自动化生产部署解决方案,可能会出现问题,并且会破坏您的生产站点,所以我更喜欢Citizen conn多个远程解决方案。您可以使用 gitolite 和权限处理更好地管理事物。每个人都可以在登台服务器上推送,但只有少数人可以在生产服务器上推送。

  • 实际上,我们不仅有一台,还有几台不同的生产服务器。但只有一台临时服务器。有没有办法配置不同的生产服务器,以便 git 自动将它们推送到正确的服务器?

您可以将生产服务器地址存储在项目中的某个文本文件中,然后在 git hook 中使用该文件的内容。