2014-05-18 122 views
-1

我使用最新发布的Dropbox webhooks设置了我的Pelican博客的自动部署。我每次更改文件中的Dropbox,它POST s到我的Heroku应用程序,它具有以下功能:用本地版本丢失的替换远程git回购.git

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

问题是在步骤4中,当我运行git pull时,它从回购中提取所有原始信息 - 包括我想要删除的文件。例如,如果我删除帖子,当我运行pelican时它会从回购库中正确删除,并且会删除whoel文件夹并在没有文件的情况下重新生成博客 - 但是当我运行git pull时,该文件会再次出现。我无法跟踪哪些文件被删除,因为我在运行pelican时删除了.git/,所以我失去了我的git历史记录。

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

+0

为了改善损害,请尝试重新定位.git:'mv .git ../somewhere/outside; echo git:../somewhere/outside> .git'。这样,当“鹈鹕”开始变得粗心时,只需重做回声就可以修复它。听起来像真正的解决办法是让“鹈鹕”停止删除你不想删除的东西,尽管如此。 – jthill

+0

同意,但我希望学习一个git的方式来做到这一点。 – jdotjdot

+0

目标是创建文章帖子的易用性,因此我希望能够简单地将新的Markdown文件放入我的Dropbox中,如Scriptogr.am。 git的原因很简单,就是该博客托管在GitHub页面上,这需要我使用git来推送最终的静态网站输出。我不认为在这种情况下使用dropbox + git会有问题,并且上面的问题确实与dropbox完全无关。 – jdotjdot

回答

0

由于似乎没有办法做我正在试图GIT中做什么,我落得这样做设置鹈鹕的DELETE_OUTPUT_DIRECTORY设置False,然后为我布脚本的一部分运行

rm -rf * 

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