使用最新的master提交更新gh页面

时间:2016-08-19 06:52:25

标签: git github atlassian-sourcetree

我将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存储库。

2 个答案:

答案 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):

Now you can select a source in your repository settings and GitHub Pages will look for your content there.

答案 1 :(得分:0)

适用于使用 create-react-app 创建应用的用户。

<块引用>

这是唯一对我有用且没有错误的方法

  1. 将此代码段添加到您的 /public/index.html 以解决浏览器缓存问题

<meta http-equiv='cache-control' content='no-cache'> 
<meta http-equiv='expires' content='0'> 
<meta http-equiv='pragma' content='no-cache'>

  1. 将默认违规从 gh-pages 更改为 ma​​ster (guide)

  2. 在本地和远程删除 gh-pages 分支 (guide)

  3. 运行:npm run deploy。这将构建您的应用并使用更新的内容重新创建 gh-pages 分支。

  4. 选择 gh-pages 分支作为发布源,选择 /(root) 作为发布源的文件夹。(guide)

  5. 可能需要一些时间。一分钟后访问您的网站,现在应该已经更新了。

(ref).

如果您有其他选择,请分享!