2014-05-18 121 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/。然後,我可以重新生成並將新內容添加到存儲庫,提交併推送而不會出現問題。