0

我有一个具有以下文件夹结构的 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 非常厌烦)。

4

1 回答 1

0

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

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

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

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

  • 不要试图将一个 Git 存储库放在另一个 Git 存储库中。坏事会发生。(有一种方法可以做“子模块”,但在你对 Git 有更多经验之前,你不想搞砸。)

于 2013-07-26T03:21:43.730 回答