我正在使用新发布的Dropbox webhooks设置我的 Pelican 博客的自动部署。每次我在 Dropbox 中更改文件时,它都会POST
发送到我的 Heroku 应用程序,该应用程序执行以下操作:
- 从 Dropbox 下载内容
- 运行
pelican
新内容以重现博客。输出到我的 Github Pages repo 的本地克隆。
- 这将删除存储库中当前存在的所有内容,并将其替换为新生成的博客。 不幸的是,这也会删除 .git 目录。
- 我丢失了我的
.git/
,所以我运行git init
并阅读了遥控器。 - 我跑去
git pull origin master
同步它们。 - 使用 . 跟踪所有更改、新文件和删除
git add -A .
。 - 提交,推送到 Github。
面临的问题是在第 4 步,当我运行时git pull
,它会从 repo 中提取所有原始信息——包括我想要删除的文件。例如,如果我删除一个帖子,它会在我运行时从存储库中正确删除pelican
,它会删除整个文件夹并重新生成没有文件的博客——但是当我运行git pull
. 我无法跟踪删除了哪些文件,因为我.git/
在运行时删除了 git 历史记录pelican
。
归根结底,我要做的就是运行pelican
,替换 repo 的全部内容,然后添加所有更改/删除/添加,然后将 repo 推送到 Github。我永远不需要有关当前存储库中的内容的信息,因此git reset
如果有帮助,运行对我来说不是问题。我怎样才能做到这一点?