Categories: Git

什麼? Git 可以拿來更新測試網站?

你知道嗎?

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

然後經過addcommit後,直接push到遠端上,他就會自動 checkout 一分到你的網站目錄囉!

$ git add .
$ git commit -m "PUSH TO WEBSITE"
$ git push web master

是不是很酷呢? 至少我覺得很酷啦,因為只需要打一次指令,測試網站上的更新也就一併完成了,可以說是一舉兩得,無比爽快的感覺啊!

duye.chen

View Comments

  • 謝謝您的文章。更新完測試網站如果反悔了想回到之前的版本,該如何同步呢?先謝謝您

Share
Published by
duye.chen
Tags: git

Recent Posts

JavaScript – Singleton 設計模式

前言 在設計程式時,我們有時會...

6 個月 ago

PlaidML 讓你的 Mac 也能加速 Tensorflow 機器學習!

相信很多使用 Mac 或者手上...

11 個月 ago

RESTful API 測試很煩,只好動手寫屬於自己的測試了

寫在最前面 嗨,大家好久不見!...

11 個月 ago

Node.js 與 Socket.io – 即時聊天室實作:資料庫

經過前兩篇(一、二)文章,我們...

4 年 ago