致命错误:已经存在一个名为“gh-pages”的分支。

40
我制作了一个模板销售网站(使用 Gatsby / React)。我克隆了我的模板 GitHub 仓库,并将远程仓库更改为新的私有仓库,推送操作正常。
我使用 npm 脚本 "deploy": "gatsby build --prefix-paths && gh-pages -d public" 部署到 gh-pages。第一次运行此命令时似乎卡住了,所以我用 "control c" 中止了它。现在,当我尝试部署时,会出现错误 "fatal: A branch named 'gh-pages' already exists."。
"git branch -a" 显示:
remotes/origin/HEAD -> origin/master remotes/origin/gh-pages remotes/origin/master
但是在 GitHub 上没有 gh-pages 分支。
我尝试 rm -rf node_modules/gh-pages/.cache,但没有起作用。 同时,我用 git push origin --delete gh-pages,结果显示:"error: unable to delete 'gh-pages': remote ref does not exist"。
我已经卸载并重新安装了 gh-pages。

我需要展示更多的代码吗? - eoja
1
所以你保留了初始克隆的 .git 目录?你考虑过创建 GitHub 模板吗?https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-template-repository 然后从模板创建新的仓库?https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-from-a-template - ksav
2
你可能想看一下这个链接:https://dev59.com/XFsV5IYBdhLWcg3wrAZJ - Adam Tang
1
@ksav 感谢你的建议。我想我会将原始仓库作为模板。 - eoja
1
这是一个超时,因为Github正在等待您输入凭据以进行身份验证。大多数情况下,它是桌面上的一个屏幕,我们大部分时间看不到。 - Leketo
不确定这是否与此相关,但在我的情况下,似乎是因为切换到本地的 gh-pages 分支时尝试运行 gh-pages 命令导致的。我切换回 master 来解决问题。 - ggorlen
6个回答

107

为了让部署工作正常,我不得不手动删除文件夹node_modules/.cache/gh-pages

在此之前,我尝试了git fetch --prune,它删除了remotes/origin/gh-page。我不知道清理分支是否是必要的步骤。


4
我只是执行了 rm -rf node_modules/.cache/gh-pages,没有运行 git fetch --prune,这解决了问题。 - axiopisty
谢谢,这个方法有效!我只是在我的编辑器(VSCode)中手动删除了 node_modules/.cache 中的 gh-pages 文件夹。 - Bert
你还可以将rm命令添加到你的预部署脚本中,以免每次都手动运行它。 "predeploy": "rm -rf node_modules/.cache/gh-pages && npm run build", - undefined

22

只需手动删除文件夹node_modules/.cache/gh-pages


请不要将“谢谢”作为答案。一旦您拥有足够的声望,您就可以投票支持有用的问题和答案 - Blastfurnace

18
在Windows操作系统下,你可以执行命令rm -rf node_modules/.cache/gh-pages来删除.cache/gh-pages文件夹,也可以手动进入node_modules 文件夹并删除.cache/gh-pages文件夹。

1
node_modules/.cache 中删除 gh-pages,然后运行以下命令: npm run deploy。完成后,您的页面将成功发布在 gh 页面上。

0

如果全局安装,路径将是: Windows路径为:%USERPROFILE%\AppData\Roaming\npm\node_modules\gh-pages\.cache\<GITREPO>

只需删除此目录


-3

在 GitHub 上创建新的代码库,按照通常的步骤进行操作,然后游戏就结束了!


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