【问题标题】:Committing documentation to a git branch (gh-pages)将文档提交到 git 分支(gh-pages)
【发布时间】:2017-11-04 11:24:50
【问题描述】:

我在我的 git 项目的工作目录中的 /docs 目录中从 javadoc 生成了文档。

我想通过将其提交到我的存储库的gh-pages 分支来使此文档在github.io 上可用(这将使它在http://username.github.io/projectname 上自动可用)。

不过,不知道该怎么做。如果我使用git checkout切换到gh-pages,我的工作目录的所有内容都会切换到gh-pages的内容,对吧?这将从其中删除 /docs 目录。

我可以在其他地方复制/docs,并在切换到 gh-pages 后将其复制到工作目录,但这是否意味着我必须重新手动复制 /docs,切换分支,每次我想更新文档时,再次复制、提交、切换回master 分支?我认为有更好的解决方案,但我不知道它可能是什么。

【问题讨论】:

    标签: git github git-branch github-pages


    【解决方案1】:

    您必须添加 doc 目录,git add -A,然后执行“git commit -m "Test msg" --dry-run”,以检查,确保该目录没有被排除在 git ignore 中,

    git status 还会检查正在跟踪的内容

    然后你需要推送,并设置一个上游分支推送到。

    git add -A,添加项目目录中的所有内容

    【讨论】:

      【解决方案2】:

      您可以使用git worktree command 管理多个文件夹中的多个工作树(无需多次克隆 repo):

      • 一个用于您的 master 分支和日常开发
      • 一个用于您的 gh-pages 分支,以及您生成的文档的内容

      这样,当您从第一个工作树生成文档时,您可以请求在第二个工作树中生成该文档输出。生成后,转到第二个文件夹,添加、提交和推送。

      【讨论】:

        【解决方案3】:

        可以在不影响工作目录或索引的情况下手动创建树并提交对象。例如,

        #!/bin/sh -e
        . "$(git --exec-path)/git-sh-setup"
        STAGE=$(mktemp -t gh-pages.XXXXXXXX)
        trap 'rm -f "${STAGE}"' EXIT
        GIT_INDEX_FILE=${STAGE} git read-tree --empty
        git ls-files -s -z docs | GIT_INDEX_FILE=${STAGE} git update-index -z --index-info
        TREE=$(GIT_INDEX_FILE=${STAGE} git write-tree)
        COMMIT=$(git commit-tree -p refs/heads/gh-pages -m 'Updated docs' "${TREE}")
        git update-ref refs/heads/gh-pages "${COMMIT}"
        

        此脚本将向gh-pages 分支添加一个新提交,该分支包含docs 下的所有当前暂存文件(并且没有其他文件)。

        【讨论】:

          【解决方案4】:

          我使用它(我在 master 中提交了一个脚本)来实现相同的结果,并且效果很好!

          git commit -am "Save local changes"
          
          git checkout -B gh-pages
          
          git add -f docs
          
          git commit -am "Rebuild website"
          
          git filter-branch -f --prune-empty --subdirectory-filter docs && git push -f origin gh-pages && git checkout master
          

          【讨论】:

            猜你喜欢
            • 2011-06-12
            • 2019-09-16
            • 2017-04-19
            • 2015-12-13
            • 2018-02-02
            • 2014-12-16
            • 2021-08-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多