【问题标题】:Deploy web project under Git version control to shared hosting [closed]将 Git 版本控制下的 Web 项目部署到共享主机 [关闭]
【发布时间】:2013-02-20 00:34:45
【问题描述】:

我正在开发一个 WordPress 主题,该主题使用 Git 和在本地开发区域 (WAMP) 进行版本控制。我使用 smartgit 作为 GUI 将提交推送到 Bitbucket。我有 2 个分支,master 和 development。我想将开发分支部署到临时区域(在我的实时服务器上安装 WordPress)。

我尝试过使用ftploy,它确实实现了这一点;但是它似乎不允许我选择要部署的分支,我想保留主分支的部署以用于实际的最终部署。我正在使用共享主机,但我有 SSH 访问权限。

如何才能最好地将开发分支部署到共享主机?服务器上没有安装 Git(也不能安装)。

【问题讨论】:

  • 服务器上是否安装了git?
  • 不...抱歉忘了提...会更新问题

标签: git deployment bitbucket smartgit


【解决方案1】:

有一个article 建议 7 个应用程序用于 Git 自动部署:

【讨论】:

    【解决方案2】:

    看看git-ftp:

    我将 git-ftp 用于基于脚本的项目,主要是 PHP。大部分的 低成本的网络托管公司不提供 SSH 或 git 支持,但 仅 FTP。

    这就是为什么我需要一种简单的方法来部署我的 git 跟踪项目。 我想,与其转移整个项目,为什么不只 传输自上次以来更改的文件,git 可以告诉我 那些文件。

    即使你在玩不同的分支,git-ftp 也知道哪个 文件不同。没有普通的 FTP 客户端可以做到这一点。

    【讨论】:

    • 谢谢。实际上,我真的希望有一些自动的东西。关键是,当我发现暂存区域中的任何错误时(主要是我这样做是为了进行 w3c 验证),我可以在本地进行更改并推送到服务器。我认为使用 git-ftp 我必须在提示符中输入一些命令,以及提交和推送,再加上我对 cmd 已经不是特别满意的事实,这不是我的“理想”工作流程;但如果必须,我会使用它。你认为这是我可能得到的最佳选择吗?我想我想知道为什么像 smartgit 这样的程序不能只部署到 ftp?
    • 您可以编写 git post-commit 和 post-merge 挂钩以在提交和合并时运行 git-ftp。只有当这是您想要的行为时,您才能定位特定的分支。
    • @JonathanPatt 如果我写了这些,那么当我通过 Smartgit GUI 提交或合并时,我是否必须做一些特别的事情才能让它们工作?
    • 不,如果你在git中设置了钩子,所有的UI都会使用它们。
    【解决方案3】:

    我是 FTPloy 的创始人,我只是想让你知道我们现在已经发布了分支选择功能。

    【讨论】:

      【解决方案4】:

      最终使用了this script,这正是我想要的。实际上它是由构建ftploy 的同一个人编写的,但是因为我可以访问脚本,所以我能够确定部署了哪个分支。顺便说一句,我发现ftploy roadmap 包括能够为 Bitbucket 项目选择分支。

      【讨论】:

      • 当心!当您一次推送多个提交时,这看起来会严重中断。我强烈建议遵循 Jonathan 的建议并为 git-ftp 编写一个提交后挂钩。
      • @Chronial 感谢您的警告……您为什么会这样想?
      • 脚本只查看上次提交的更改——永远(参见:commits[0])。一旦你推送了多个提交,你的 ftp 就会失去同步,并且永远不会再回到正确的状态。
      • 很高兴知道,谢谢...我将像建议的那样研究 git-ftp 和 git 钩子。
      • 公平地说,我想这家伙建议不要在页面顶部使用它,而是使用 ftploy。
      【解决方案5】:

      由于您具有 SSH 访问权限,在我看来,您可以在 git post-receive 挂钩脚本中设置 rsync 命令。 见https://github.com/EugeneKay/scripts/blob/master/bash/git-deploy-hook.sh 我将它与 gitolite 一起使用,但我确信也可以使用 github 钩子做类似的事情(任何人?)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-30
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 2018-06-05
        • 1970-01-01
        • 2018-10-05
        相关资源
        最近更新 更多