git web開發版本管理


使用git來管理web開發;

我們需要做的事情 :

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

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

3,在開發服務器上提交開發版本;

 

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

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

cd /git/
mkdir project.git
git init --bare

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

cd /git/project.git
cp hooks/post-receive.sample hooks/post-receive
vim hooks/post-receive
#加入下面代碼
GIT_WORK_TREE=/home/www git checkout -f

 

3,在開發服務器上提交開發版本;假設目錄為/git/project/

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub git@yourserver
git init
git add *
git commit -a -m "init a version"
git remote add origin git@youserver:/git/project.git
git push origin master

這個時候,查看一下 /home/www下,文件應該已經更新了...

 

華麗的分隔線


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

      GitLab的搭建可以參考:

  https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos

  http://www.pickysysadmin.ca/2013/03/25/how-to-install-gitlab-5-0-on-centos-6/

  相對於Gitlab,我更喜歡使用Gitolite+Gitweb來進行代碼審閱,因為他們的安裝更簡單一點,而且,Gitweb的代碼很簡煉,我們可以很方便地進行功能的添加,例如我們之前添加的增量更新的功能。

      Rsync的搭建可以參考這篇文章

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

 


 

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

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM