如何只将特定文件夹从Master分支推送到gh-pages分支?

时间:2015-07-16 21:32:42

标签: github github-pages

我对github和Web开发一般都很陌生。所以说我的所有项目文件都在我的主分支上,我想只推送使页面在gh-pages上运行所需的文件。我怎么能告诉它只将某些文件推送到新的gh-pages分支?例如,当您使用gulp或grunt时,它会创建一个文件夹,作为您预览网站的渲染网站。如何在不添加Master分支上所有其他必要内容的情况下,仅将该站点文件夹中的内容推送到gh-pages?

我最近一直在使用Jekyll,因为你仍然可以将所有文件推送到gh-pages上,但它仍然有效。但是我的很多项目都有2个存储库。一个存储库包含所有源文件,然后另一个存储库只包含将工作站点推送到gh-pages所需的文件。我想清理我的github页面,使其更有条理。

谢谢。

3 个答案:

答案 0 :(得分:2)

我知道这是一个老问题,但是为了新手可能偶然遇到这个问题的Git分支/ gh-pages,我找到了将文件或文件夹从主分支移动到a的最简单方法gh-pages分支是做以下的。

# First switch to the gh-pages branch
git checkout gh-pages

# Next checkout the specific file you wish to add to the gh-pages branch
git checkout master -- <path/to/file/folders/on/master/branch>

# Perfom the commit
git commit -m "Updated index.html from master"

# And push
git push 

假设您要添加到gh-pages分支的文件存在于master分支上,则在执行上述步骤后您不应该遇到任何问题。

答案 1 :(得分:1)

如果您使用nodejsnpm,则可以使用命令行中的gh-pages包从特定目录发布到gh-pages分支。 gh-pages包中包含command line utility

  

安装包会创建一个gh-pages命令行实用程序。运行gh-pages --help以查看支持的选项列表。

注意:您提到使用 Gulp ,并且有一个名为gulp-gh-pagesnpm包,我成功用于创建gulp {1}}要放入部署工作流程的任务。

答案 2 :(得分:0)

我相信你正在寻找git subtree merge

  

子树合并的想法是你有两个项目,其中一个项目映射到另一个项目的子目录,反之亦然。   当你指定一个子树合并时,Git很聪明,可以弄清楚一个是另一个的子树并合适地合并 - 这真是太神奇了。

相关问题