[英]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.