使用Git维护你的网站

On 2009/12/08, in Python, by admin

git-tree

简介

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

Tagged with:  

3 Responses to 使用Git维护你的网站

  1. 天缘 说:

    我以前用过CVS,感觉git很类似,一直不大习惯CVS,为了防止误操作,本地工作还是要备份一个,同步换个目录

  2. reeze 说:

    我也是用这种方式管理的,不过每次push好后都ssh到主机上git pull, 忘了还有post-update脚本。。不错。。呵呵

  3. reeze 说:

    @天缘
    cvs还是太难用了。。。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

iBlog by PageLines

WP SlimStat