使用 master 的最新提交更新 gh-pages
Bring gh-pages up to date with the latest commit of master
我将 SourceTree 与 Github 存储库结合使用以对项目进行版本控制。有一段时间,我一直在使用 master
提交所有新更改,但时不时地,我希望 gh-pages
分支快进到 master
的最新提交,这样我就可以用生产中的页面更新实时页面(通常在主要更新完成后)。
我已经尝试过变基,正如另一个 SO post 所建议的那样,但这使问题变得更糟,因为 SourceTree 让我手动选择我想要的更改并且变基花了一点时间,特别是考虑到在 gh-pages
的最后一次更新之间提交。在一个项目中成功变基后,我基本上可以随时将 gh-pages
分支同步到 master
,并且所有中间版本都会自动提交(尽管我无法在另一个存储库中重现相同的行为)。但是,我想要的是获得最后一次提交并覆盖所有文件。为此,我通常只是将 master
分支上的整个文件夹复制到另一个位置,然后切换到 gh-pages
并手动覆盖所有文件。不过,这是次优的,对于大型项目来说确实会出现问题。
所以,我想要和需要的是通过 SourceTree 或脚本自动执行此过程。
TL;DR:我需要一种半自动更新 gh-pages
到最新的 master
提交的方法,这将覆盖所有文件master
中的那些没有变基,然后将它们推送到 Github 存储库。
However, what I want is to get the last commit and overwrite all files.
你应该:
- 使用
--ours
选项将 gh-pages
合并到 master
(因此 master 实际上未受影响)。
- 将 master 合并到
gh-pages
(这意味着 gh-pages
快进到 master
并变得相同)
所以:
git checkout master
git merge --ours gh-pages
git checkout gh-pages
git merge master
别忘了,从几天前开始,您就不必再维护 gh-pages
分支了。
Simpler GitHub Pages publishing 现在允许将页面文件保存在 same 分支的子文件夹中(不再 gh-pages
需要):
对于使用 create-react-app 创建应用的用户。
this was the only method that worked for me without errors
- 在您的 /public/index.html 中添加此代码段以解决浏览器缓存问题
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
将默认违规从 gh-pages 更改为 master (guide)
删除本地和远程的 gh-pages 分支 (guide)
运行:npm run deploy
。这将构建您的应用程序并使用更新的内容重新创建 gh-pages 分支。
选择 gh-pages 分支作为发布源,选择 /(root) 作为你的文件夹发布来源。(guide)
可能需要一些时间。一分钟后访问您的网站,现在应该已更新。
(ref).
如果您有其他选择,请分享!
我将 SourceTree 与 Github 存储库结合使用以对项目进行版本控制。有一段时间,我一直在使用 master
提交所有新更改,但时不时地,我希望 gh-pages
分支快进到 master
的最新提交,这样我就可以用生产中的页面更新实时页面(通常在主要更新完成后)。
我已经尝试过变基,正如另一个 SO post 所建议的那样,但这使问题变得更糟,因为 SourceTree 让我手动选择我想要的更改并且变基花了一点时间,特别是考虑到在 gh-pages
的最后一次更新之间提交。在一个项目中成功变基后,我基本上可以随时将 gh-pages
分支同步到 master
,并且所有中间版本都会自动提交(尽管我无法在另一个存储库中重现相同的行为)。但是,我想要的是获得最后一次提交并覆盖所有文件。为此,我通常只是将 master
分支上的整个文件夹复制到另一个位置,然后切换到 gh-pages
并手动覆盖所有文件。不过,这是次优的,对于大型项目来说确实会出现问题。
所以,我想要和需要的是通过 SourceTree 或脚本自动执行此过程。
TL;DR:我需要一种半自动更新 gh-pages
到最新的 master
提交的方法,这将覆盖所有文件master
中的那些没有变基,然后将它们推送到 Github 存储库。
However, what I want is to get the last commit and overwrite all files.
你应该:
- 使用
--ours
选项将gh-pages
合并到master
(因此 master 实际上未受影响)。 - 将 master 合并到
gh-pages
(这意味着gh-pages
快进到master
并变得相同)
所以:
git checkout master
git merge --ours gh-pages
git checkout gh-pages
git merge master
别忘了,从几天前开始,您就不必再维护 gh-pages
分支了。
Simpler GitHub Pages publishing 现在允许将页面文件保存在 same 分支的子文件夹中(不再 gh-pages
需要):
对于使用 create-react-app 创建应用的用户。
this was the only method that worked for me without errors
- 在您的 /public/index.html 中添加此代码段以解决浏览器缓存问题
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
将默认违规从 gh-pages 更改为 master (guide)
删除本地和远程的 gh-pages 分支 (guide)
运行:
npm run deploy
。这将构建您的应用程序并使用更新的内容重新创建 gh-pages 分支。选择 gh-pages 分支作为发布源,选择 /(root) 作为你的文件夹发布来源。(guide)
可能需要一些时间。一分钟后访问您的网站,现在应该已更新。
(ref).
如果您有其他选择,请分享!