利用git管理web的发布目录代码更新
web启动用户为www-data,发布目录/var/www/ezpub,所属主组为www-data
系统为ubuntu 10.04
首先安装git服务 apt-get install git-core gitosis
设置www-data用户密码 为eztest
切换到www-data用户
su - www-data && cd /var/www/ezpub
git init .
git config receive.denyCurrentBranch ignore && git config --bool receive.denyNonFastForwards false
cd .git/hooks && wget http://utsl.gen.nz/git/post-update && chmod +x post-update
git add . #添加所有文件
git commit -am "init"
这样一个简单的版本库就建好了,clone地址为 ssh://www-data@SERVER_IP/var/www/ezpub
客户端使用
git clone ssh://www-data@SERVER_IP/var/www/ezpub
建立过滤规则,在发布目录下建立.gitignore文件
vi /var/www/ezpub/.gitignore
/var/ #过滤文件夹
/update/
/support/
*.zip #过滤zip,tar.gz类型文件
*.tar.gz
/test/a.sh #过滤某个文件
!*.html #不过滤某类文件
git常用的命令
status 查看当前哪些文件做了修改
pull 从远程版本库取数据,更新本地库为最新
add 添加文件到索引中
新建或修改文件后添加到索引中,如新建了文件 test.php
git add test.php 添加单个文件
git add test2 test3 添加两个文件
git add *.txt 添加所有的txt文件
git add . 添加所有文件,包含子目录,但不包含排除的目录。
reset 重置索引内容 一般用在git add(或rm)之后。
git reset HEAD test 撤销git add test的索引
checkout 撤销尚未提交的更改 回复到文件未改之前状态,一般用在add 之前
git checkout -- test 撤销对test文件的修改
rm 从索引中删除文件
git rm test
commit 提交更改的记录
git commit -m "touch a new test.php" -m参数是为修改的记录添加标记
git commit -am "some msg" -a参数为提交所有更改
git commit -m " rm test"
push 提交到远程管理库
git push origin master 提交到远程的master库
diff 查看区别
git diff 查看working tree与index file的差别的
git diff --cached 是查看index file与commit的差别的
git diff HEAD 是查看working tree和commit的差别的
log 查看提交日志
branch 查看当前是哪个分支