簡體   English   中英

使用Git與多個提交者一起部署網站

[英]Deploy Website using Git with multiple committers

我想在我的服務器上運行dokuwiki.org 我正在使用基於文件的設置,因此不涉及外部數據庫。

我想設置一個包含dokuwiki data目錄的git存儲庫,這樣多個提交者就可以脫機工作並在完成后推送更改。 git存儲庫中的data目錄沒什么大不了的,你可以使用dokuwiki的config-files設置data目錄的位置。

我使用指南來設置所有內容,並且它按預期工作。

tl;指南博士:

  • 設置bare倉庫
  • 在裸倉庫上的post-receive hook導航到htdocs目錄並檢查來自bare倉庫的更改。
  • 你推送一些東西到repo, htdocs目錄自動檢查repo的變化。

因此,只有在將靜態站點或基於數據庫的內容用於指南時,該指南才有用。

我的問題是,每當有人通過基於Web的維基而不是本地存儲庫中的文件編輯某些東西時, www目錄就會被更改 - >這些更改不會被推回到bare存儲庫,因為沒有掛鈎/方式/ .. 。要做到這一點。

有沒有我在這里缺少或更好的方法來處理這個用例?

我想到的唯一一件事就是讓網站本身就是一個存儲庫(稱之為www repo),人們在開發人員推動之前就將其從中拉出來。 您可以使用git插件提交網站上發生的更改。

這有缺點,因為您必須更改設置掛鈎的方式。 基本上當有人推送到裸存儲庫時,你必須檢查你的鈎子,通過web界面進行的最后修改已經提交到www repo(這意味着它的工作樹是干凈的),並且提交被推送包含他們(即他們從網站回購)。 如果是,那么裸存儲庫的鈎子將新提交推送到www repo。

但是我不知道這是否可行,以及git插件的質量。 但我沒有看到任何其他東西讓Git使用非提交的外部修改。

有一個相當新的插件可以完全滿足您的需求: gitbackend 它還支持拉入現場回購。

從您的描述中不明顯,但如果您計划“僅”更改data/pagesdata/media ,您將錯過對元數據的更改。 這意味着幾個提交只會在頁面的舊版本上顯示為單個修訂,而其他數據(如提交消息/更改摘要)將丟失。

上述插件也未實現元數據更改,但可以在內部執行。 如果您更喜歡編寫一個在外部執行某些操作的腳本,您可能希望掛鈎到XML-RPC API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM