2011-11-23 281 views
3

我現在已經配置了我的git來部署我的網站。 我有一個主分支,這是網站的直播狀態。如果我把這個推到我的裸回購網站上傳。 然後我有一個開發分支,我可以測試一切。如果我將它與活動分支合併,然後推送它,這將會實現。Git網站部署

但我仍然有問題。 我已經找到了2個解決方案,使用git進行網站部署。 2種解決方案之間的區別僅在於使用的鉤子。 對於第一個解決方案,它使用git pull來創建我的www root。這意味着我需要一個以www爲根的repo。 第二種解決方案使用git checkout -f,它不必是回購。 我不知道哪一個更適合我的需求。

我的問題是有可能其他用戶可以使用ftp客戶端在我的web服務器上添加/更改/刪除文件。 問題是沒有任何使用git進行提交。現在我需要在我的裸回購中獲得主分支中的更改。 但我該怎麼做?我認爲,如果www root是一個回購,我必須先做一個提交或其他事情,然後將其提交給我的裸回購。 這是可能做到這一點,如果www根不是回購?我怎麼能自動做到這一點,我得到我的主分支萬維網根的內容,如果我拉主分支?

回答

0

我覺得做的更標準的方式是git checkout -f方法(或類似的方法,如git archive)在您的www是不是混帳回購協議,但是當你把它用鉤子從裸回購簽出。

當您使用的部署這樣的事情,那麼你必須確保每個人都來的git(理想情況下,你應該有CI,測試等),並推動這一生產。你不能讓人們通過FTP等上傳到生產環境,並且也有這種機制。這只是要求麻煩。

如果你不能阻止作出這樣的改變,則具有WWW根作爲回購更爲合理,因爲你可以跟蹤變化,並將其推到裸露的回購人。即使它不是回購站,您仍然可以在服務器上設置另一個回購站,在該站上覆制來自www root的文件並提交它們。

+0

正如我結賬-f和歸檔理解我,因爲有被傳送的文件創建每次新的WWW根如果某些文件被刪除我也不會刪除www的根,如果我只覆蓋這些文件或我錯了嗎?我無法避免使用FTP上傳文件。但是我怎樣才能自動跟蹤這些變化?我的意思是我想從我的工作站拉。這應該告訴我的裸回購從我的服務器獲取當前的活網站。如果www root是回購站,如果不是,我該怎麼做? – user1058712

0

如果我正確理解您的情況,最好不要從web根目錄推送到裸露的回購站點,並從裸露的回購站點拖到本地計算機。把你的web根目錄中的文件同步到你本地的repo(比如用rsync)不是更好,處理你本地機器上的所有git東西(比較,添加,提交& c),並把它推到裸回購這又可能會再次觸發您的Web根目錄中的結帳?

+0

我想我必須做類似的事情。我的問題是用戶可以使用ftp在web根目錄下創建文件,而不應該刪除它。但是,我在回購站上刪除的文件應該在Web根目錄上刪除。但也許我會使用git-ftp,或者我必須將我的web根目錄的文件同步到我的本地,然後才能將更改提交給它。 – user1058712