我对github和Web开发一般都很陌生。所以说我的所有项目文件都在我的主分支上,我想只推送使页面在gh-pages上运行所需的文件。我怎么能告诉它只将某些文件推送到新的gh-pages分支?例如,当您使用gulp或grunt时,它会创建一个文件夹,作为您预览网站的渲染网站。如何在不添加Master分支上所有其他必要内容的情况下,仅将该站点文件夹中的内容推送到gh-pages?
我最近一直在使用Jekyll,因为你仍然可以将所有文件推送到gh-pages上,但它仍然有效。但是我的很多项目都有2个存储库。一个存储库包含所有源文件,然后另一个存储库只包含将工作站点推送到gh-pages所需的文件。我想清理我的github页面,使其更有条理。
谢谢。
答案 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)
如果您使用nodejs
和npm
,则可以使用命令行中的gh-pages
包从特定目录发布到gh-pages
分支。 gh-pages
包中包含command line utility。
安装包会创建一个gh-pages命令行实用程序。运行gh-pages --help以查看支持的选项列表。
注意:您提到使用 Gulp
,并且有一个名为gulp-gh-pages
的npm
包,我成功用于创建gulp
{1}}要放入部署工作流程的任务。
答案 2 :(得分:0)
我相信你正在寻找git subtree merge。
子树合并的想法是你有两个项目,其中一个项目映射到另一个项目的子目录,反之亦然。 当你指定一个子树合并时,Git很聪明,可以弄清楚一个是另一个的子树并合适地合并 - 这真是太神奇了。