“git symbolic-ref HEAD refs/heads/gh-pages”和“git branch gh-pages”的区别是什么?

8

这是创建 GitHub 项目页面分支的步骤

cd /path/to/repo-name
git symbolic-ref HEAD refs/heads/gh-pages
rm .git/index
git clean -fdx
echo "My GitHub Page" > index.html
git add .
git commit -a -m "First pages commit"
git push origin gh-pages

它说明git symbolic-ref HEAD refs/heads/gh-pages将创建一个新的根分支。我想知道根分支和常规分支之间有什么区别。
2个回答

14

"根分支"是指没有先前历史记录的分支。

如果你在主分支上执行git branch gh-pages,那么gh-pages将基于主分支。

这里的意图是为Github页面创建一个分支,通常不与您的仓库历史记录(主分支和其他分支)相关联,因此使用了git symbolic-ref

还可以参见这里:https://stackoverflow.com/a/8815361/526535

* 它也被称为孤立分支,git checkout --orphan现在将执行与之前进行的git symbolic-ref相同的操作。

还可以参见我的答案:https://dev59.com/wm025IYBdhLWcg3w_a6r#5690048


3
如果 gh-pages 分支基于 master 分支,会有什么问题?这会改变任何东西吗? - gaurav5430

2
该操作的Git 223(2019年第三季度)+版本将使用 git switch
git switch --orphan gh-pages

如果`gh-pages`分支基于`master`,会有什么问题吗?这会改变什么吗?
然后你会发现所有来自`master`的被跟踪的文件都在`gh-pages`中:在使用新分支之前,你必须先将它们删除。
git switch -c gh-pagres master
git rm -r .
git commit -m "empty new branch"

请注意,自2020年9月以来,使用GitHub Pages的存储库现在可以从任何分支构建和部署。
自2022年8月起,默认情况下,GitHub Pages使用Actions,并使用一个入门工作流程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接