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