用丢失.git的本地版本替换远程git仓库

时间:2014-05-18 14:29:32

标签: git github webhooks pelican

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

  1. 从Dropbox下载内容
  2. 在新内容上运行pelican以重现博客。输出是我的Github Pages repo的本地克隆
    • 这将删除当前存在于repo中的所有内容,并将其替换为新生成的博客。 不幸的是,这也会删除.git目录。
  3. 我已经丢失了.git/,因此我运行了git init并读取了遥控器。
  4. 我运行git pull origin master来同步它们。
  5. 使用git add -A .跟踪所有更改,新文件和删除。
  6. 提交,推送给Github。
  7. 问题出在第4步,当我运行git pull时,它会从回购中提取所有原始信息 - 包括我要删除的文件。例如,如果我删除了一个帖子,那么当我运行pelican时它会从repo中正确删除它并删除whoel文件夹并重新生成没有该文件的博客 - 但是当我运行时,该文件会重新出现{ {1}}。我无法跟踪哪些文件被删除,因为我在运行git pull时删除了.git/时丢失了我的git历史记录。

    在一天结束时,我想要做的就是运行pelican,替换repo的全部内容,然后添加所有更改/删除/添加,然后将repo推送到Github 。我永远不会需要有关目前在回购中的内容的信息,因此如果有帮助,运行pelican对我来说不会成为问题。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

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

rm -rf *
相反,我自己忽略了点前缀文件和目录,因此只留下.git/。然后我可以重新生成并将新内容添加到存储库,提交和推送而不会出现问题。