簡體   English   中英

將文檔提交到git分支(gh-pages)

[英]Committing documentation to a git branch (gh-pages)

我已經從git項目工作目錄中的/docs目錄中的javadoc中生成了文檔。

我想通過將其提交到我的存儲庫的gh-pages分支來使其在github.io可用(這將使它在http://username.github.io/projectname自動可用)。

不過,不確定如何去做。 如果我使用git checkout切換到gh-pages ,我的工作目錄中的所有內容都將切換到gh-pages的內容,對嗎? 這將從其中刪除/docs目錄。

我可以在其他地方制作/docs的副本,並在切換到gh-pages之后將其復制到工作目錄中,但這是否意味着我將不得不完成手動復制/docs ,切換分支,再次復制,提交,每次要更新文檔時都切換回master分支嗎? 我認為有更好的解決方案,但我不知道它可能是什么。

您必須添加doc目錄,git add-A,然后執行“ git commit -m” Test msg“ --dry-run”,以檢查並確保不排除dir在git中忽略,

git status還檢查正在跟蹤的內容

然后,您需要推送,並設置要推送到的上游分支。

git add -A,將所有內容添加到項目目錄中

您可以使用git worktree命令來管理多個文件夾中的多個工作樹(而不必多次克隆存儲庫):

  • 一個用於您的master分支和通常的開發
  • 一個用於gh-pages分支,另一個用於生成的文檔的內容

這樣,當您從第一個工作樹中生成文檔時,可以請求在第二個工作樹中生成該文檔輸出。 生成后,轉到第二個文件夾,添加,提交和推送。

可以手動創建樹並提交對象,而不會影響工作目錄或索引。 例如,

#!/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下所有當前暫存的文件(不包含其他文件)。

我用那個(我把它放到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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM