我目前正在处理github页面项目,并将网站生成到名为dist
的分支上名为dev
的文件夹。我想将dist的内容推送到master分支。到处搜寻,我发现了github子树,可以使用以下命令将dist
目录推送到master
:
git subtree push --prefix dist origin master
issue会推送整个目录。所以master分支有一个名为dist
的目录,包含dist/index.html
等。相反,我想将dist的所有内容推送到master分支。这样master分支就包含index.html
和所有其他内容。该怎么办?
答案 0 :(得分:2)
这不容易做到(除了做一些git filter-branch
魔术之外)
如果您查看“ Configuring a publishing source for GitHub Pages”,则应该直接在gh-pages
分支中生成站点。
或者,您可以留在master
分支中,但在docs/
文件夹中而不是dist
生成。
在两种情况下,GitHub页面都将呈现该内容。
但是,对于User Page:
如果您的网站是具有名为
<username>.github.io
或<orgname>.github.io
的存储库的用户或组织页面,则无法从不同位置发布网站的源文件。
具有这种存储库名称类型的用户和组织页面仅从master
分支发布。
在这种情况下,请逆转您的工作流程:
dev
分支上开发您的网站,master
分支上生成您的网站当您进入dev
分支时,您可以将master
分支声明为子模块(请参见here for the procedure),因此将其显示为一个“子文件夹”(例如一个“ dist
”子文件夹,除了该子文件夹实际上是您在master
上的同一个Git存储库)
像往常一样(在dist
中生成站点,进入dist,添加,提交和推送(该子文件夹是一个子模块,它将推送其关联的分支:master
)
然后返回您的项目存储库文件夹(dist
的父级,当前在dev
分支上),添加,提交和推送(以记录子模块dist
的新状态)>