git服务器同步网站,使用git同步管理自己的网站 | 东东东 陈煜东的博客

在本地修改网站的文件,如果需要使用ftp上传,太麻烦,如果文件一多,也不知道哪个文件应该上传。而且网站使用了git作为项目管理,每个人都可以对网站进行更改,我如果改了,对方也改了,就不容易区分了。所以git的项目管理是很容易看出来哪里的文件发生变化的。

前面有说到使用通过SSH创建私有git仓库文章,此处在服务器上创建了一个公共的仓库,里面只是存放着文件的更改记录,没有一个文件结构直接显示在服务器的文件夹中。我们可以看本地的文件树,一个project里有.git文件夹,里面存放着更改记录。然后还有我们的具体的project的源代码。但是git服务器只存放着.git里的内容,没有本地的源代码结构。所以没办法直接更新网页。

但是有个方法,既然我们的git历史记录在服务器上保存着,而且我们可以从git仓库中check out出来源代码到服务器上,这样我们在本地push,然后在服务器上使用check out,就可以改变网页的文件了。

具体步骤。

在服务器上配置

第一步,新建一个git私有仓库test.git。可以参考文章http://www.chenyudong.com/archives/git-over-ssh-create-private-repository.html。

1

2

3

4

5$mkdir /home/www.chenyudong.com/www.chenyudong.com.git#将来网站git的记录存放位置

$chown -R git:git www.chenyudong.com.git#改权限

$cd www.chenyudong.com.git

$ git init --bare

Initialized empty Git repositoryin /home/www.chenyudong.com/www.chenyudong.com.git/

第二步,当客户端push到服务器来时,自动更新某个文件夹。

1

2

3

4

5

6$mkdir /home/www.chenyudong.com/WebRoot #网站的目录地址

$vi hooks/post-receive #新建文件,输入以下内容

#!/bin/sh

GIT_WORK_TREE=/home/www.chenyudong.com/WebRoot git checkout -f

# or GIT_WORK_TREE=../WebRoot git checkout -f

$chmod +x hooks/post-receive #添加可执行权限

post-receive这个脚本在提交文件到git仓库时,会运行文件内的代码,所以通过这样的方法,我们在客户端push提交代码后,就能自动更新网站的文件了。

在本地客户端配置

第一步,参考上边的文章,新建一个本地的仓库。

第二步,commit文件。

第三步,push文件到服务器上。在远端地址写入ssh://git@ca.daoiqi.com/~/www.chenyudong.com.git,然后输入密码,push后,就可以发现服务器下的那个文件夹发生变化了。

这样的方法,适用于php等解释性的语言,在运行时,直接靠解释器来编译运行。如果你是编写jsp页面,那么你提交的只有java文件和jsp文件,而运行的时class文件,那么就需要将java文件编译成class文件。只有在git服务器上,提交代码后,自动编译成class文件才行。我觉得可以使用ant来编译、胡或者写个bash程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值