天天看點

git web開發版本管理

使用git來管理web開發;

我們需要做的事情 :

1,在伺服器建立版本倉庫;

2,在伺服器建立穩定版本的站點,編寫版本倉庫的hooks;

3,在開發伺服器上送出開發版本;

下面一步一步來:(注意建立新使用者,如git)

1,在伺服器上建立版本管理倉庫;假定目錄為 /git/,切換到該目錄下;建立一個工程

<code>cd</code> <code>/git/mkdir</code> <code>project.git</code>

<code>git init --bare</code>

2,在伺服器上建立穩定版本的站點,例如目錄是 /home/www ; 下面是重點,寫鈎子hooks:

<code>cd</code> <code>/git/project</code><code>.gitcp hooks</code><code>/post-receive</code><code>.sample hooks</code><code>/post-receive</code>

<code>vim hooks</code><code>/post-receive</code>

<code>#加入下面代碼</code>

<code>GIT_WORK_TREE=</code><code>/home/www</code> <code>git checkout -f</code>

3,在開發伺服器上送出開發版本;假設目錄為/git/project/

<code>ssh</code><code>-keygenssh-copy-</code><code>id</code> <code>-i ~/.</code><code>ssh</code><code>/id_rsa</code><code>.pub git@yourserver</code>

<code>git init</code>

<code>git add *</code>

<code>git commit -a -m </code><code>"init a version"</code>

<code>git remote add origin git@youserver:</code><code>/git/project</code><code>.git</code>

<code>git push origin master</code>

這個時候,檢視一下 /home/www下,檔案應該已經更新了...

這種方法在生産伺服器上也建立了版本管理,這樣會消耗伺服器資源,還可以帶來源代碼洩露(例如某個開發版本将密碼都寫了進去,後果不堪設想)等其他安全隐患,是以在後面的開發中,我們采用了Git+Rsync的架構,内網開發伺服器架設GitLab進行源代碼管理 ,同時搭建rsync用戶端進行代碼同步;生産伺服器隻使用Rsync服務端監聽端口接收同步請求。

 寫一個shell腳本或者使用php進行網頁指令調用來同步代碼是一個很不錯的想法,我們用的是php執行shell指令來進行同步的。

  另外,如果想在多台生産伺服器上進行代碼同步,可以使用rsync+inotify進行實時同步,這樣,在内網開發伺服器向一台主伺服器同步代碼後,inotify監控腳本可以同步其他生産伺服器,同步。

本文轉自 藍葉子Sheep 51CTO部落格,原文連結:http://blog.51cto.com/dellinger/1957931,如需轉載請自行聯系原作者