你知道嗎?
Git 不只能夠幫你把你的專案好好地留存許多改版痕跡,它還可以拿來幫你將在你電腦上測試完成的結果,在你push
你的commit
到你自己私有的git伺服器上時,還可以幫你同步更新到你的測試網站的資料夾呢!
只需要簡單幾個步驟就可以完成這樣的任務,期待嗎? 心動嗎? 讓我們繼續看下去。
在同步之前,你得要先在你專案的資料夾中先建立一個 git repository
$ git init
然後在遠端主機(/home/git/
)上也要建立一個,不過跟在自己主機上地建立方法不大相同
$ mkdir website.git
$ cd website.git
$ git init --bare
然後,我們就假設你的測試網站資料是存放在
/var/www/website/
這個地方,當然你可以放在不同位置,而我這只是一個假設。
接下來,就是整個同步的關鍵了,而這同步的關鍵是利用 git 的鉤子(hooks)來達到的,所以,請先進到鉤子的資料夾中。(這部分都在遠端主機上進行)
$ cd hooks
建立一個叫做post-receive
的檔案
$ touch post-receive
然後編輯它!
$ vim post-receive
#!/bin/sh
export GIT_WORK_TREE=/var/www/website git checkout -f
接下來給它一個能夠被執行的權限
$ chmod +x post-receive
到此,整個同步的前置作業就完成了。
回到你自己的電腦上,我們還需要在你的專案資料夾中做點事情,要來增加遠端的 push 位置。
$ git remote add web ssh://git@www.servername.com/home/git/website.git
然後經過add
與commit
後,直接push到遠端上,他就會自動 checkout 一分到你的網站目錄囉!
$ git add .
$ git commit -m "PUSH TO WEBSITE"
$ git push web master
是不是很酷呢? 至少我覺得很酷啦,因為只需要打一次指令,測試網站上的更新也就一併完成了,可以說是一舉兩得,無比爽快的感覺啊!
View Comments
謝謝您的文章。更新完測試網站如果反悔了想回到之前的版本,該如何同步呢?先謝謝您