我将SourceTree与Github存储库结合使用,用于项目的版本控制。有一段时间,我一直在使用master
提交所有新的更改,但我时不时地希望gh-pages
分支快进到master
的最新提交,这样我就可以用生产中的页面更新实时页面(通常是在完成主要更新时)。
我已尝试过改装,正如另一篇SO帖子所暗示的那样,但这使得问题更加严重,因为SourceTree让我手动选择了我想要的改变,并且改变了一段时间,特别是考虑到上次更新之间的提交量gh-pages
。在一个项目中成功重新定位后,我基本上可以在需要时将gh-pages
分支同步到master
,并且所有中间版本将自动提交(尽管我无法在另一个存储库中重现相同的行为)。但是,我想要的是获取最后一次提交并覆盖所有文件。为此,我通常只需将master
分支上的整个文件夹复制到另一个位置,然后切换到gh-pages
并手动覆盖所有文件。虽然这不是次优的,但对于大型项目来说可能会出现问题。
所以,我想要和需要的是通过SourceTree或脚本自动执行此过程。
TL; DR :我需要一种方法可以半自动地将gh-pages
更新为最新的master
提交,这将覆盖{{1}中所有文件的所有文件没有rebasing,然后将它们推送到Github存储库。
答案 0 :(得分:2)
但是,我想要的是获取最后一次提交并覆盖所有文件。
你应该:
gh-pages
选项将master
合并到--ours
(因此主人不会受到影响)。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 现在允许将您的网页文件保存在相同分支的子文件夹中(不再需要gh-pages
):
答案 1 :(得分:0)
这是唯一对我有用且没有错误的方法
<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).
如果您有其他选择,请分享!