React项目部署GitHub Pages:能否修改默认分支为master且不影响部署?
通用问题:必须把默认分支设为gh-pages才能部署React应用到GitHub Pages吗?
当然不用!GitHub Pages的部署逻辑是看你指定用于发布静态文件的分支(一般大家用gh-pages),和仓库的默认分支半毛钱关系都没有。默认分支只是别人点开你的仓库链接时默认显示的分支,不影响Pages的部署流程。
针对你的副业项目场景解答
1. npm run deploy要求默认分支是gh-pages吗?
完全不要求!Create React App里的deploy脚本是靠gh-pages这个包实现的,它的核心作用就是把本地build文件夹里的静态产物推送到你配置好的部署分支(默认就是gh-pages)。整个过程根本不关心仓库的默认分支是什么,只要你的package.json里homepage字段设置正确,deploy脚本配置正常,它就会老老实实把代码推去gh-pages分支。
2. 把默认分支改成master会不会搞坏npm run deploy?
绝对不会!修改默认分支只是改变了仓库主页的默认展示内容(以后别人点你仓库链接,默认看的是master分支的源码和README),完全不会干扰deploy脚本的执行。你尽管放心改,改完之后npm run deploy该怎么跑还是怎么跑,一点影响都没有。
3. 改完默认分支后,怎么继续部署应用到GitHub Pages?
改完之后你完全可以继续用npm run deploy,它依然会把构建好的文件推去gh-pages分支,GitHub Pages也会正常从这个分支加载你的应用。要是你怕之后出什么歧义,还可以在package.json里明确指定部署分支,比如把deploy脚本改成这样:
"scripts": { "deploy": "gh-pages -d build -b gh-pages" }
这里的-b gh-pages就是明确告诉脚本要推送到gh-pages分支,彻底杜绝任何可能的误会。
最后说下改默认分支的操作步骤(在GitHub上):
- 打开你的仓库主页,点右上角的「Settings」
- 左边菜单找「Branches」
- 在「Default branch」那里选
master,点「Update」确认就搞定了
总的来说,改默认分支为master完全符合你的需求:既不影响应用部署,又能让别人访问仓库时默认看到你的源码和README,一举两得~
内容的提问来源于stack exchange,提问作者cag8f

