【问题标题】:Jekyll deployment with git使用 git 部署 Jekyll
【发布时间】:2013-07-26 11:21:43
【问题描述】:

我有一个具有这种文件夹结构的 Jekyll 站点:

jekyll_site
  _source
    file1 in source
    file2 in source
    etc...
  _deploy
    file1 in deploy
    file2 in deploy
    etc...

我在 jekyll_site 中初始化了一个 git repo,我有两个分支 master 和 source。 我希望源分支只跟踪 _source 文件夹,而 master 只跟踪 _deploy 文件夹。另外,我想将它们推送到远程存储库,但使主分支显示为(在远程存储库中):

master branch
  file1 in deploy
  file2 in deploy

而不是:

master branch
  _deploy
    file1 in deploy
    file2 in deploy

所以我想把整个事情上移一级。 假设我可以在 deploy 中创建另一个 repo 只是为了使其成为 root 并分别推送它们?但也许一个回购也是可能的。 抱歉,如果我忽略了一些非常明显的事情,我很累(而且对 git 非常厌烦)。

【问题讨论】:

    标签: git deployment jekyll


    【解决方案1】:

    这里发生了一些不同的事情。

    • Git 并非设计为在一个分支上管理一个目录,而在第二个分支中维护另一个目录。要按照您描述的方式分别管理两个目录,需要两个 Git 存储库。 jekyll_site/_source 的一个存储库,jekyll_site/_deploy 的第二个存储库。

    • 使用两个 Git 存储库可以将“_deploy”文件上移一级。由于将在jekyll_site/_deploy 创建存储库,因此文件将部署到根目录。

    • 如果您决定仍要使用单个存储库,请不要与 Git 对抗。即不要尝试使用不同的分支来分别管理_source_deploy目录。只需在 jekyll_site 级别创建一个 repo。使用这种方法,您将需要在 Git 之外使用其他东西进行部署。编写一个简单的脚本,将文件从_deploy 移动到它们最终需要的任何位置。

    • 不要尝试将一个 Git 存储库放在另一个 Git 存储库中。坏事会发生。 (有一种方法可以执行“Submodules”,但在您对 Git 有更多经验之前,这不是您想要搞砸的事情。)

    【讨论】:

    • 感谢您的光临 我的主要目标是让我的源代码处于版本控制之下,因为 deploy 只是一个生成的文件夹,它从根目录(也就是网站)提供服务。所以每次修改都是在源代码中进行的,但是由于我正在推送到 Github,因此部署也必须处于修订控制之下。我见过人们以多种方式处理这种情况,例如having 2nd branch filter to subdirectorycopying the generated files over and over,或者只是简单地以 repo 样式进行 repo
    猜你喜欢
    • 1970-01-01
    • 2013-04-06
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2012-03-26
    • 2015-04-06
    相关资源
    最近更新 更多