2011-03-30 130 views
4

我的合作伙伴和我一直在討論推銷和回收影響公衆可查看文件的回購的想法,而不是將回購存儲在隱藏位置,而僅僅是在FTP文件我們覺得他們很好走。雖然能夠直接推到「現場」會非常方便,但我不知道會產生什麼負面影響(如果有的話)。Git「Live Server」最佳實踐

非常感謝!

回答

4

我會推薦拉而不是推如果去這條路。

總是拉出成品,不要在現場服務器上合併,因爲如果有衝突,你會爭先恐後地解決它們。在測試環境中進行所有合併等。一旦所有產品都完好無損,請將完成的結果推送到生產分支的「裸機」回購,然後從生產機器git pull中完成。

是的,它可能是另一個失敗點,但我認爲弊大於利。

+0

感謝您的回覆。這個過程是你經常做的嗎? – JoeQuery 2011-03-30 21:44:50

+0

是的,我通常在'開發'分支本地開發,然後推到裸露的回購。然後從測試服務器上拉我'開發',確保一切都很好。然後融入'主'並將'主'推回裸回購。登錄到生產服務器並拉'主'。不需要ftp,一切正常。 – RDL 2011-03-31 03:53:04

1

VCS不應該是部署工具(請參閱Using git below web root in production.):一個簡單的ftp文件(使用git archive創建)就足夠了。

如果您要使用Git,請在服務器端使用裸回購以推送,並使用post-receivehook更新代表您站點的工作樹。

+0

以這種方式構建使用git的趨勢。我看到的第一個是博客引擎Marley(https://github.com/karmi/marley),現在有麥子(https://github.com/creationix/wheat),它基於推動新的博客文章與Git。我也正在改變我的網站做同樣的事情。在所有情況下,用例都是一個博客,它不同於webapp。是否應該以這種方式使用VCS *是一回事,但確實越來越多地以這種方式使用git。 – 2011-03-30 19:18:55

+0

@Matt:當然,這就是爲什麼我用一種實際的方式完成了我的答案。 – VonC 2011-03-30 19:51:14

+0

我剛剛開始使用git作爲協作科學創作的「數據庫」的新方法。它運作良好。 Git是一個工具。和其他任何產品一樣,它的價值在於其獨特的功能。想象一下,你想製作一個大型的協作wiki並用git數據庫備份它,直接從git提供文件可以提供部署優勢。 – 2011-03-30 19:56:35

1

這聽起來像你是腳本部署的候選人。我強烈建議看看CapistranoWebistrano。藉助這些工具,您可以輕鬆部署公共可用的git repo,並僅更新服務器上必需的代碼。回購的緩存副本保存在服務器上,因此您只能傳輸更改集。我提到的兩個工具還允許您輕鬆地回滾更改,管理數據庫遷移等.Webistrano實質上是Capistrano的Web前端,它是一種紅寶石。我也聽說過關於弗拉德的好消息,但我並不熟悉它。祝你好運。

0

我「推」我的地方發展到Live服務器是這樣的:

1.-配置服務器上的鉤 的.git /掛鉤/後收到
包括此行:

 git pull 
    git reset --hard 

警告:reset --hard將刪除活動工作區上的任何更改。 (見下文)

2:給可執行權限,該文件

chmod +x .git/hooks/post-receive 

3.-讓現場服務器上的「不裸」倉庫接收推送

git config receive.denyCurrentBranch ignore 

我在我的本地副本(用於開發)上工作,該副本直接從實時服務器克隆。 和剛剛

git push 

部署爲了避免我的約定衝突: 推 決不直播現場工作或提交服務器之前,始終拉。

我希望你覺得這個方法很有用。