Hexo deploy总是删除我之前的所有提交

时间:2017-01-28 23:11:14

标签: git github github-pages hexo

我想知道使用Hexo将帖子发布到我的Github页面的正确步骤。基于tutorial,它看起来非常简单明了,但它给我带来了巨大的麻烦和痛苦。

以下是我遵循的步骤:

hexo new post "my new post"

hexo generate

hexo deploy(这是灾难命令)

在进行hexo部署之后,我之前的所有提交都将在我的Github页面上删除,我做错了什么?请帮忙。

我已经联系了GitHub的人工支持,他们查看了我的Git推送历史并告诉我,我强行推送提交,最终删除了我之前的所有提交。 我从来没有意识到这个force推动。出了什么问题?

然后我做了大量的研究并尝试了另一种方式,我只是跟着这个官方tutorial。我所做的是:

hexo new post "my new post"

git add .

git commit -m "commit message"

git push

但我的个人网站根本没有显示我的新帖子。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您需要确保项目的主Git存储库与您的部署username.github.io存储库是分开的。当您hexo deploy到您的username.github.io帐户时,它只会使用部署日期/时间的提交消息推送所有更改。

答案 1 :(得分:0)

我认为问题依赖于_config.yml文件中的部署配置。

  

在进行hexo部署之后,我之前的所有提交都将在我的Github页面上删除,我做错了什么?

根据您的描述,我认为您已经使用git来控制由hexo init fishercoder1534.github.io生成的hexo项目仓库。然后你还将其原点设置为https://github.com/fishercoder1534/fishercoder1534.gi thub.io.git。需要注意的是,当您使用git init设置git时,会创建 master 作为默认分支。

deploy:
  type: git
  repo: https://github.com/fighter3228/fishercoder1534.github.io.git
  branch: master
  message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

再次根据您的描述,我认为_config.yml文件中的部署配置应如上所示。问题是当你在同一个repo中使用git作为部署工具时。更糟糕的是,它使用与您用于版本控制项目仓库的相同分支 master 。这就是为什么你以前的所有提交都被删除了。

如何快速解决

如果您仍然在本地拥有您的hexo项目repo,要让所有提交回来,您可以在您的hexo项目仓库中执行git push -f,然后您可以在Github上看到,您的所有提交都已恢复。

然后,如果你想使用git作为部署工具而你不想为你的github页面创建另一个repo,你可以按如下方式修改你的部署配置:

deploy:
  type: git
  repo: https://github.com/fighter3228/fishercoder1534.github.io.git
  branch: gh-pages
  message: "Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}"

运行'hexo g -d'让hexo为部署创建 gh-pages 分支。然后github会自动从 gh-pages 分支构建你的github页面,同时你可以将你的hexo项目repo版本控制在master分支。

为了更好地解决这个问题

我建议你在Github创建另一个repo,一个repo版本控制你的hexo项目文件夹,并有另一个repo来部署你的github页面。