-1

我正在使用新发布的Dropbox webhooks设置我的 Pelican 博客的自动部署。每次我在 Dropbox 中更改文件时,它都会POST发送到我的 Heroku 应用程序,该应用程序执行以下操作:

  1. 从 Dropbox 下载内容
  2. 运行pelican新内容以重现博客。输出到我的 Github Pages repo 的本地克隆。
    • 这将删除存储库中当前存在的所有内容,并将其替换为新生成的博客。 不幸的是,这也会删除 .git 目录。
  3. 我丢失了我的.git/,所以我运行git init并阅读了遥控器。
  4. 我跑去git pull origin master同步它们。
  5. 使用 . 跟踪所有更改、新文件和删除git add -A .
  6. 提交,推送到 Github。

面临的问题是在第 4 步,当我运行时git pull,它会从 repo 中提取所有原始信息——包括我想要删除的文件。例如,如果我删除一个帖子,它会在我运行时从存储库中正确删除pelican,它会删除整个文件夹并重新生成没有文件的博客——但是当我运行git pull. 我无法跟踪删除了哪些文件,因为我.git/在运行时删除了 git 历史记录pelican

归根结底,我要做的就是运行pelican,替换 repo 的全部内容,然后添加所有更改/删除/添加,然后将 repo 推送到 Github。我永远不需要有关当前存储库中的内容的信息,因此git reset如果有帮助,运行对我来说不是问题。我怎样才能做到这一点?

4

1 回答 1

0

由于似乎没有办法做我在 git 中尝试做的事情,我最终做的是将 pelican 的DELETE_OUTPUT_DIRECTORY设置设置为False然后作为我的 Fabric 脚本运行的一部分

rm -rf *

我自己,它忽略了点前缀文件和目录,因此不理会.git/。然后我可以重新生成新内容并将其添加到存储库、提交和推送,而不会出现问题。

于 2014-05-21T21:32:36.943 回答