我有一个具有此文件夹结构的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分支显示为(在远程仓库中):
master branch
file1 in deploy
file2 in deploy
而不是:
master branch
_deploy
file1 in deploy
file2 in deploy
所以我想将整个事情提升一级。 假设我可以在部署中创建另一个repo以使其成为root并单独推送它们?但也许有一个回购也可能。 对不起,如果我忽略了一些非常明显的事情,我很累(并且非常愚蠢)。
答案 0 :(得分:0)
这里有一些不同的事情。
Git的设计目的是在一个分支上管理一个目录,在另一个分支中维护另一个目录。要按照您描述的方式单独管理两个目录,需要两个Git repos。 jekyll_site/_source
的一个存储库和jekyll_site/_deploy
的第二个存储库。
使用两个Git repos可以将“_deploy”文件上移一级。由于将在jekyll_site/_deploy
创建存储库,因此文件将部署到根目录。
如果您决定仍想使用单个存储库,请不要与Git作斗争。也就是说,不要尝试使用不同的分支来单独管理_source
和_deploy
目录。只需在jekyll_site
级别创建一个回购。使用这种方法,除了Git之外,您还需要使用某些东西进行部署。编写一个简单的脚本,将文件从_deploy
移动到最终需要的位置。
不要试图将一个Git存储库放在另一个存储库中。坏事会发生。 (有一种方法可以做“Submodules”,但在你有更多Git经验之前,这不是你想要搞的东西。)