【问题标题】:Using git to mirror web development environment?使用 git 镜像 web 开发环境?
【发布时间】:2013-08-19 22:22:44
【问题描述】:

我正在使用 github 来控制我的 Web 应用程序的源代码,但是在我的实时服务器上部署它时遇到了问题。当我在 repo 中有稳定的代码时,我想 ssh 到服务器和git pull origin master。问题是我有两个文件夹位于服务器上的不同位置。

# Bolded to be version controlled
/var
**/var/ci** <- php framework
/var/www/
**/var/www/webapp1**
/var/www/webapp2

我的问题:有没有办法设置它,以便之后我可以git hub pull origin master 并将最新代码抓取到两个目录中?

一个解决方案,虽然牺牲了轻松和安心,但将在不同位置的服务器上设置一个 repo,但有一个 bash 脚本来替换 web 应用程序。这样会不会有什么问题?

#/bin/bash
#Disclaimer: pseudo code
`git pull origin master`
`rm -rf * /my/live/frameworks`
`cp -f /my/git/repo/frameworks /my/live/frameworks
`rm -rf * /my/live/web_root`
`cp -f /my/git/repo/web_root /my/live/web_root

我可以看到上面的方法有一些问题:

  1. 应用程序升级不顺畅
  2. 丢失缓存的模板和其他临时文件。我可以在rm -rf 上添加一个过滤器,但这种方法又太老套了,我无法接受

如果您拥有一台 Web 服务器并像我一样通过从 repo 设置中提取最新代码来管理它,您能否提供一些关于我应该如何执行此操作的提示?非常感谢。

【问题讨论】:

  • 你不能从同一个 git repo 克隆两个目录吗?是的,您仍然需要在两个地方执行git pull,但如果这太麻烦,您可以将其包装在脚本中。我不明白你想用cprm 做什么。如果您的部署是 git repo 的克隆,那么您需要做的就是 git pull 升级和 git checkout -f SOMETAG 回滚,就是这样。或者我不明白你的问题。

标签: git web-applications web-deployment


【解决方案1】:

如果您打算以这种方式管理它,您可以使用符号链接从实际的 Web 公开目录链接到 git 项目。

这里是a thorough answer describing that technique

【讨论】:

    猜你喜欢
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多