2013-08-19 126 views
0

我正在使用github來控制我的web應用程序的源代碼,但我在將它部署到我的實時服務器時遇到問題。當我在回購中有穩定的代碼時,我想ssh進入服務器並且git pull origin master。問題是我有兩個文件夾駐留在服務器上的不同位置。使用git鏡像web開發環境?

# Bolded to be version controlled 
/var 
**/var/ci** <- php framework 
/var/www/ 
**/var/www/webapp1** 
/var/www/webapp2 

我的問題:有沒有一種方法來設置這使得後來我只能git hub pull origin master,它會搶了最新的代碼放到這兩個目錄?

一個解決方案,雖然犧牲了方便和安心,但可以在服務器上設置不同位置的回購站,但有一個bash腳本來替換網絡應用程序。這會產生什麼問題嗎?

#/bin/bash 
#Disclaimer: pseudo code 
`git pull origin master` 
`rm -rf * /my/live/frameworks` 
`cp -f /my/git/repo/frameworks /my/live/frameworks 
`rm -rf * /my/live/web_root` 
`cp -f /my/git/repo/web_root /my/live/web_root 

我可以看到一些問題,通過上述的方法:

  1. 非光滑應用程序升級
  2. 失去緩存的模板和其他臨時文件。我可以在rm -rf添加過濾器,但同樣這種方式過於哈克對我來說是舒適與

如果你擁有一個Web服務器,並通過將最新的代碼出來成立了像我這樣做回購的管理它你能提供一些關於如何去做這件事的提示嗎?非常感激。

+0

難道你不能讓兩個目錄從同一個git倉庫克隆嗎?是的,你仍然需要在兩個地方做'git pull',但如果這太麻煩了,你可以將它包裝在腳本中。我不明白你想用'cp'和'rm'做什麼。如果你的部署是git repo的克隆,那麼你所需要做的就是'git pull'升級和'git checkout -f SOMETAG'回滾,就是這樣。或者我不明白你的問題。 – janos

回答