原文地址: http://chenxiaoyu.org/blog/archives/90
簡介
git是由Linus Torvalds 編寫的一個開放源碼的版本控制系統. 它的主要目標是高度分散, 效率超過其他競爭對手.
我就是使用git維護本網站. 我知道git不應該這樣的粗重任務的使用, 即每一個開發者維護一份代碼拷貝, 但是它工作的很好, 所有我使用它.
本文的目的就是說明如何在家裏或者筆記本里維護一個本地拷貝, 然後讓這些修改提交到互聯網主機上. 下面就是介紹如何設置.
安裝
# Gentoo
emerge git
# Debian/Ubuntu
apt-get install git-core
# RedHat/Fedora
yum install git
初始化
你會進入你的服務器的目錄和初始化git倉庫.
# 進入你的web目錄
cd /$wherever/html/
# 初始化倉庫
git init
# 添加所有內容
git add .
# 提交 -m備註
git commit -a -m "The Initial Import."
然後返回你的html父目錄, 克隆新的git-ized web目錄.
# 返回你的html目錄
cd ..
# 克隆你的web目錄到 html.git
git clone --bare html html.git
現在你已經初始化好了倉庫, 並將整個目錄(遞歸)到該庫中, 並進行了初次提交, 爲web目錄建立了一個git克隆. 這個git目錄(html.git)是整個過程的關鍵.
獲取一份開發環境的拷貝
1. 轉到你的開發系統
2. 安裝git
3. 從你的開發目錄運行下面命令
git clone ssh://yoursite.com/path/to/html.git
現在已經獲得一個完整的網站服務器版本的本地拷貝.
使你的web目錄克隆Git目錄
記住, 你的html.git是這裏的關鍵, 而不是現有的html目錄, 所以你要切換出來, 備份目錄, 然後:
# 備份html目錄, 然後克隆html.git
mv html html.backup; git clone html.git
這在當前目錄獲取一份html.git的拷貝, 當然名字還是html. 這就是爲什麼備份舊的html目錄.
自動推送修改
把你的html.git目錄添加到post-update鉤子中
cd ../htdocs
env -i git pull
修改鉤子程序爲可執行
chmod +x post-update
在你的開發環境的變動
現在編輯的網站, 打開一個新的TextMate項目(你使用TextMate對嗎?), 並拖動到html克隆目錄. 整個結構都準備好了.
1. 通常的變動
2. 保存更改
3. 運行下面的程序, 例如(QuickSearchBox, TextMate等)
# This is for an OS X box
cd /Users/daniel/Development/html/
git commit -a -m "Another update."
git push
這基本上是更新到git倉庫最重要的兩個命令: commit(注意:你的標記(如果想回滾的話))和push(推送到服務器).
[根據你的操作系統和git安裝, 你可能需要chmod +x 鉤子程序, 然後再繼續]
現在你只需要激活post-update 鉤子程序, 將會自動的獲取web目錄.
如果你在服務器端的操作基本也是相同的git commit和git push, 然後你的開發環境下git pull同步備份就可以了. 當然你還可以使用腳本, 如果你需要的話.
原文參見: http://danielmiessler.com/blog/using-git-to-maintain-your-website