我在 GitHub 上有一个仓库。最近我发现了 GitHub 的页面,我想使用它们。
我想创建这个新分支,然后,当我需要时,要么在分支上提交,要么在master
分支上提交gh-pages
。
我怎样才能做到这一点?我是否必须在我的仓库中创建另一个文件夹?
我在 GitHub 上有一个仓库。最近我发现了 GitHub 的页面,我想使用它们。
我想创建这个新分支,然后,当我需要时,要么在分支上提交,要么在master
分支上提交gh-pages
。
我怎样才能做到这一点?我是否必须在我的仓库中创建另一个文件夹?
最新版本的 git 可以替代git symbolic-ref
Chandru 解释的方法。这避免了必须使用较低级别的命令。
git checkout --orphan gh-pages
git rm -rf .
您可能会发现本教程很有用:
将 GitHub Pages 的“gh-pages”分支和“master”分支设置为父项目文件夹(“grandmaster”)的子文件夹。
对我来说,这种方法似乎比git checkout gh-pages
每次你想编辑你的 gh-pages 内容时都更简单。让我知道你的想法^_^
编辑:我更新了教程链接 - 谢谢@Cawas。旧教程(不推荐)是https://gist.github.com/825950
在您的本地克隆上,
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
然后,git checkout gh-pages
写你的页面。git push origin gh-pages
当您准备好发布页面时。
您的问题还有另一种解决方案:忘记gh-pages
和分支;将您应该提供的静态文件放在/docs
目录中,然后转到您的项目设置并告诉 github 提供/docs
内容。
有关更多信息,请查看此
像这样发布一个静态站点:
git subtree push --prefix www origin gh-pages
www
您的静态文件所在的 doc 根目录在哪里。您的静态网站现在位于:
https://[user_name].github.io/[repo_name]/
手动创建项目页面
如果您习惯于使用命令行 git,则手动为项目添加一组新页面是一个简单的过程。
https://help.github.com/articles/creating-project-pages-manually
您的 gh-pages 和 master 分支是否具有完全相同的文件夹结构?如果是这种情况,你为什么还要有两个分支?只需维护一个 gh-pages 分支!但是,如果出于某种原因您希望两个分支不断同步,那么您最好的选择是使用git rebase
. 见这里: http:
//lea.verou.me/2011/10/easily-keep-gh-pages-in-sync-with-master/
您也可以只从 master 中挑选出您需要的文件,然后使用git checkout
. 见这里: http:
//oli.jp/2011/github-pages-workflow/#gh-pages-workflow
http://nicolasgallagher.com/git-checkout-specific-files-from-another-branch/
不得不解决同样的问题后,我发现 gh-pages 通常最终会拥有与 master 不同的代码库。换句话说,gh-pages 应该只包含项目的 dist/build/publish 文件夹的内容,而 master 将包含您的配置文件、未缩小的脚本和样式等。
我的建议是创建 gh-pages 作为一个--orphan
分支,并且只在其中包含可发布的材料。您必须在不同的本地目录中从 master 克隆,git checkout --orphan gh-pages
用于创建 gh-pages,然后使用git rm -rf .
. 在添加仅发布文件后,您可以从那里继续并推送到 gh-pages。有关更多信息,请参阅 Github 文档:
https ://help.github.com/articles/creating-project-pages-manually/
祝你好运
典型的方法是切换分支:git checkout master
如果你想在 master 上工作,git checkout gh-pages
如果你想在gh-pages
.
从 git 2.5 开始,您可以同时检出两个分支(在不同的目录中)。请参阅https://github.com/blog/2042-git-2-5-include-multiple-worktrees-and-triangular-workflows。通过设置git worktree add -b gh-pages ../gh-pages origin/gh-pages
。
奖励:如果master
结帐的子目录的内容是 的内容,请使用https://github.com/X1011/git-directory-deploygh-pages
提供的脚本。
我用这个
git push origin `git subtree split --prefix build`:$DEPLOY --force
您可以查看工作版本https://github.com/rofrol/closeyoureyesnow/blob/master/build_and_deploy.sh