代码之家  ›  专栏  ›  技术社区  ›  Marc

用git子树推送到项目根目录

  •  1
  • Marc  · 技术社区  · 7 年前

    我目前正在处理一个Github页面项目,并将网站生成到一个名为 dist 在一个叫 dev . 我想把dist的内容推到master分支。在搜索中我找到了Github子树,我可以推 迪特 目录到 master 使用命令:

    git subtree push --prefix dist origin master
    

    问题是这会推送整个目录。所以主分支有一个名为 迪特 dist/index.html 我想把dist的所有内容都推到master分支。以便主分支包含 index.html 以及所有其他内容。怎么能做到?

    1 回复  |  直到 7 年前
        1
  •  2
  •   VonC    7 年前

    做起来不容易(除了做一些 git filter-branch 魔术

    如果你看一下” Configuring a publishing source for GitHub Pages “,您应该直接在 gh-pages 分支机构。

    或者,你可以呆在里面 master 分支,但在 docs/ 文件夹而不是 dist .

    在这两种情况下,Github页面都将呈现该内容。

    然而,对于 User Page :

    如果您的站点是具有名为 <username>.github.io <orgname>.github.io 无法从不同位置发布网站的源文件。
    只有从 主人 分支 .

    在这种情况下,请反转工作流:

    • 在一个 dev 分支,
    • 在上生成站点 主人 分支

    当你在你的 DEV 分支, 你可以申报 主人 作为子模块的分支 (见 here for the procedure ,因此将作为“子文件夹”(例如a)可见。 迪特 “子文件夹,除了该子文件夹实际上是您的同一Git报告外,在 主人 )

    像往常一样生成站点(在 迪特 ,进入dist、add、commit和push(该子文件夹是子模块,它将推送其关联的分支: 主人 )
    然后返回到项目报告文件夹(父文件夹 迪特 ,当前位于 DEV 分支)、添加、提交和推送(以记录子模块的新状态) 迪特 )

    推荐文章