如何更新我的 gh-pages 分支?

5
我之前一直在开发我的最新GitHub Pages网站。我的网站是一个React应用程序。大约一个月前,我终于让网站运行起来了,但我卡在了这个问题上:当我将更改推送到GitHub时,我的网站不会自动重新呈现。唯一的方法是发布它,但我几乎可以确定我不应该频繁发布。
我认为问题在于我实际上没有更新存储库的gh-pages分支,我不确定我是否应该这样做。如果答案是肯定的,那么我该怎么做呢?我也不太确定如何推送那个分支。
我已经发布过这个问题了,但时间已经很长了,没有人回复,所以我在这里添加了一些我认为可能存在的问题的更多信息。 原帖
7个回答

4
我认为你不应该直接推送到你的gh-pages分支。 gh-pages命令会代替您进行推送。
我查看了您的package.json中的npm部署脚本,发现您有"deploy": "gh-pages -d dist"。 根据gh-pages文档,当您运行gh-pages -d dist时,gh-pages命令将会将当前分支中的dist/目录中的所有文件发布到远程的gh-pages分支中。 然后,您的站点将从已推送到该gh-pages分支的构建文件中提供服务。
我还注意到在gh-pages文档的末尾写道:

如果gh-pages失败,您可能需要手动清理缓存目录。 要删除缓存目录,请运行node_modules/gh-pages/bin/gh-pages-clean或删除node_modules/.cache/gh-pages。

^^^ 这些指示实际上是错误的。 第一个选项应该是node node_modules/gh-pages/bin/gh-pages-clean。 第二个选项应该是删除node_modules/gh-pages/.cache(因为.cache位于gh-pages中,而不是相反)。
如果即使在停止推送到gh-pages分支后仍然无法正常工作,您可以尝试其中一种清除缓存的选项。

这个脚本对我来说可行: "deploy": "./node_modules/gh-pages/bin/gh-pages-clean.js && gh-pages -d build" - Dreadnaut

3
我认为问题在于我没有实际更新存储库的 gh-pages 分支,而且我不确定是否应该这样做。 如果答案是肯定的,那么我该怎么做呢? 我也不太确定如何推送那个分支。
假设您的 GitHub Pages 网站是从 gh-pages 渲染的,那么是的,那就是您应该进行更改并将更改推送到 GitHub 的分支。
我不知道您使用的确切工作流程,但通常更改分支的一种常见方法是:
  1. 使用 git checkout gh-pages 检查它,
  2. 进行更改,
  3. git add 您希望提交的更改,和
  4. git commit 创建一个新提交。
您可以根据需要重复步骤2-4。
一旦您准备好发布新更改,您可以将 gh-pages 推送到 GitHub。 再次说明,我不知道您的确切工作流程,但检出 gh-pages 并使用简单的 git push 即可。

1
谢谢您的回复。我理解您所说的一切,但是我没有一个本地的_gh-pages_分支。当我发布网页时,在我的github上创建了一个分支,但是从未附加到本地分支,有没有办法以某种方式制作此分支的副本,以便在更新时也会更新github分支? - FlamePrinz
@FlamePrinz,你的GitHub Pages内容是否在另一个本地分支中? - Chris
我用来生成网站的所有代码都在我的另一个分支中。我通常需要通过运行“webpack --mode production”和“gh-pages -d dist”来发布。这些命令会创建_gh-pages_分支,而该分支似乎只有两个文件。所以是的,我确实在另一个本地分支中拥有我的GitHub Pages内容,但它只是内容的一小部分。 - FlamePrinz
gh-pagesgh-pages -d dist 中是什么意思?我不知道有一个 gh-pages 命令。 - Chris
该命令在我的Github上创建了一个名为“_gh-pages_”的分支,并将运行网站所需的文件添加到此分支中,包括“_index.html_”和“_bundle.js_”。 - FlamePrinz
@FlamePrinz,抱歉,我又有点糊涂了。如果该命令在GitHub上创建了“gh-pages”,并且您已经配置了GitHub Pages网站以从“gh-pages”发布,则应该会更新。gh-pages命令的工作原理是什么? - Chris

1

1

我曾经遇到过同样的问题,并尝试了很多复杂的在线解决方案。最终,我发现以下方法可行:

npm run deploy

0

0

从主/主分支输入以下命令:

npm build

然后

npm run deploy

  • 您的 gh-pages 将会更新。

0

这是Github提供的更新React应用程序的答案:

链接在此:https://github.com/Frnt-End/Update-React-in-GitHub-Pages

以下是页面的基本说明:

如何在GitHub页面中更新React:

假设您已经运行了gh-pages的GitHub页面,并且在您推送更改后,您可以在repo中看到它们,但是GitHub页面没有被更新。

继续阅读完整指南或查看教程页面中的快速解决方案(如果您想了解教程页面中的全屏视频,请查看此指南以了解如何在React中设置响应式视频)

在此示例中,我们使用npm和名为main的分支,如果需要,根据自己的设置进行更改。我们已经有一个构建目录-如果您没有构建目录怎么办?没问题!只需执行npm run build命令(确保构建文件夹未列在.gitignore文件中)。 让我们开始 解决方案很简单-我们只需要更新构建目录! 在终端中:

确保您在项目文件夹中,并且没有其他进程正在运行(要在终端中停止所有处理:在Windows中按Ctrl + c或在Mac中按Cmd + c)

部署构建文件夹:

npm run deploy

(如果您在代码编辑器中使用GitHub,则会看到构建文件夹内容被添加到未暂存的更改中-准备好进行分段)。

全部暂存:

git add .

...然后提交:

git commit -m“更新gh-pages的构建”

最后一步-推送到GitHub:

git push -u origin main


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