东东东 陈煜东的博客

使用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。

$ 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 repository in /home/www.chenyudong.com/www.chenyudong.com.git/

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

$ 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程序。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 使用git同步管理自己的网站 – https://www.chenyudong.com/archives/git-sync-manage-website.html

分类: Linux

Galaxy Nexus 刷机教程 » « eclipse使用egit提交到github上

15 评论

  1. 这个虚拟主机可以用么?我的两个vps纯粹是用来折腾的,隔几天重装一次,不能建立稳定的git

  2. 你好,你wp采用的什么模板?挺好的,我想了解一下

  3. 按照文章操作报错
    git.exe clone –progress -v “ssh://git@118.193.134.34/~/re.git” “D:Puttyt.com”

    Cloning into ‘D:Puttyre’…
    fatal: ‘~/re.git’ does not appear to be a git repository
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.

  4. 完全拉不到网站的内容啊,这个要如何设置啊,git 里面是空的啊

  5. 设置成功,但是一旦从本地push到远程提示:

    cannot run hooks/post-receive: No such file or directory

发表评论

邮箱(不会被公开)

*

Copyright © 2017 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑