我在 GitHub 上有一个代码库,最近发现了 GitHub 的 Pages 功能,想要使用它们。
我想创建一个新分支,并在需要时,可以在 master 分支或 gh-pages 分支上提交。
我该如何操作?我需要在我的代码库中创建另一个文件夹吗?
我在 GitHub 上有一个代码库,最近发现了 GitHub 的 Pages 功能,想要使用它们。
我想创建一个新分支,并在需要时,可以在 master 分支或 gh-pages 分支上提交。
我该如何操作?我需要在我的代码库中创建另一个文件夹吗?
最近的git版本有一种替代git symbolic-ref
方法的方式,可以避免使用更低级的命令。
git checkout --orphan gh-pages
git rm -rf .
symbolic-ref
有什么关系吗? - cregoxgit symbolic-ref
,就像 Chandru 的回答中所示。现在 git checkout --orphan
是正确的方法。 - Arrowmasterorphan
实际上是采用孤儿而不是创建孤儿,对吗?并且它和 symbolic-ref
做的事情是一样的,只是我们需要调用它?通过一个好的例子来解释可能会更容易些。 - cregox--orphan
参数接收一个起点(如果未指定,则为HEAD),并从该点创建一个没有历史记录的新分支。我答案中额外使用的git rm -rf .
是为了在您希望分支完全没有内容时删除先前的内容。当您运行git symbolic-ref HEAD refs/heads/gh-pages
且gh-pages尚不存在时,它将使存储库处于类似于git init
之后但在第一次提交之前的状态,因此以下提交将不会有父级。 --orphan
是针对symblic-ref
的特定用例而添加的,但并不替代其他用途。 - Arrowmastercat .git/HEAD
和cat .git/refs/heads/master
。这些文件是由git symbolic-ref
创建的。第一个通常只引用另一个(除非您有一个分离的HEAD),而另一个将指向特定的提交SHA1。 - Arrowmastergit checkout 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
。
git checkout gh-pages
的意思是你已经切换到名为“gh-pages”的分支。你提交到这个分支的任何更改都会被 GitHub 捕捉并用于构建你的 GitHub 页面。要切换回“master”分支(可能是你的源代码),请执行 git checkout master
。 - Chandra Sekargit subtree push --prefix www origin gh-pages
其中www
是您静态文件所在的文档根目录。
您的静态网站现在已经上线,网址为:
https://[user_name].github.io/[repo_name]/
reset gh-pages branch to master ...\nfatal: Refusing to fetch into current branch refs/heads/gh-pages of non-bare repository\nfatal: the remote end hung up unexpectedly
。我使用了这个git push origin `git subtree split --prefix build`:$DEPLOY --force
https://github.com/rofrol/closeyoureyesnow/blob/master/build_and_deploy.sh - rofrol我使用这个
git push origin `git subtree split --prefix build`:$DEPLOY --force
你可以查看工作版本https://github.com/rofrol/closeyoureyesnow/blob/master/build_and_deploy.sh
https://help.github.com/articles/creating-project-pages-manually
典型的方法是切换分支:git checkout master
如果你想在主分支上工作,git checkout gh-pages
如果你想在gh-pages
上工作。
从git 2.5开始,您可以同时检出两个分支(在不同的目录中)。请参见https://github.com/blog/2042-git-2-5-including-multiple-worktrees-and-triangular-workflows。通过git worktree add -b gh-pages ../gh-pages origin/gh-pages
进行设置。
奖励:如果您的master
检出的子目录的内容是gh-pages
的内容,请使用提供的脚本https://github.com/X1011/git-directory-deploy。
origin
不是一个分支,它是一个远程仓库。你的意思是master
。 - Dustin#
后面的锚点ID),但是@Martijn Pieters 删除了它,而SE一再拒绝实施有关已删除答案的通知,所以我不知道它被删除了。无论如何,这里的另一个答案仍然指向更简单的方法,只需告诉GitHub从哪个文件夹提供页面即可;不需要特殊分支。 - Dan Dascalescu