搭建git私有服务器及同步更新自己网站的文件
2016-03-29 19:06
706 查看
一、搭建git私有服务器
下面以ubuntu为例1.安装git(如果没有安装的话)
sudo apt-get install git
2.新建一个git用户组
sudo groupadd git
3.新建git用户
-m, --create-home:创建家目录-s, --shell:指定一个shell,下面是不能登录的
-d, --home-dir:指定具体家目录在哪
-g, --gid GROUP:指定组名或者写组的ID
sudo useradd git -m -s /sbin/nologin -d /home/git -g git
4.创建裸仓库
你想把他放在哪就在哪敲(就cd进去敲下面的命令),这个他不会保存具体的代码,只会和客户端的.git目录一致,或者加密压缩在里面了sudo git init --bare yourweb.git
还要改一下拥有者
sudo chown -R git:git yourweb.git
5.把你的公钥放服务器上
不会生成公钥的请看/article/9449654.html放在这个.ssh目录的authorized_keys文件,没有就自己创建,有多个每个公钥空一行就可以了
/home/git/.ssh/authorized_keys
6.客户端测试(上面都是服务器敲的命令)【ip那里可以换成域名】
git clone git@ip:/具体目录/yourweb.git如:
git clone git@ip:/home/ubuntu/yourweb.git
二、同步更新自己网站的文件
1.进入yourweb.git的hooks目录
想想windows的hook就应该很好理解了说明:
钩子(hooks)是一些在$GIT-DIR/hooks目录的脚本, 在被特定的事件(certain points)触发后被调用。
post-receive:这个hook由远程资源库的'git-receive-pack'触发,此时,本地资源库的'git push'已经完成,且所有ref已经更新.
更详细请看http://www.360doc.com/content/12/0606/23/10140166_216510889.shtml
post-receive一般是不存在的
cd yourweb.git/hooks
sudo vim post-receive
2.在post-receive加入下面代码
git checkout :检出代码-f/--force:强制
#!/bin/sh GIT_WORK_TREE=/XXXX/XXXX git checkout -f其中/XXXX/XXXX为你的网站的目录
3.修改该文件权限,增加执行权限
sudo chmod +x post-receive
4.递归修改网站目录所有者
这个我暂时不知道还有更好办法,有肯定有,知道的可以告诉我,因为不这样 post-receive没权限把代码放在这网站根目录/XXXX/XXXX 为网站的网站目录
sudo chown -R git:git /XXXX/XXXX
相关文章推荐
- 中小型网站架构分析及优化
- 架构设计:负载均衡层设计方案(4)——LVS原理
- [转]秒杀业务架构优化之路
- 两款WEB防火墙软件介绍
- 注册界面图形验证码,防攻击(网站、短信)
- Android应用架构之Retrofit使用
- 架构案例丨苏宁易购:商品详情系统架构设计
- 大型项目架构搭建_高内聚、低耦合(1)
- 网站SEO需要了解用户群体
- Android开源项目之Music — Android的MediaPlayer架构介绍 + 补充
- 免费的论文查重网站
- 使用flask开发网站后端
- web网站的压力测试
- web应用程序 两层c/s、三层c/s、b/s架构对比及Servlet由来
- 查企业情况和招聘的网站
- Filter --- 使用URL Rewrite实现伪静态网站
- 一种更清晰的Android架构(转)
- 揭秘双11“某东”背后的架构实战
- SEO之如何为网站选择关键词
- rsync+sersync+nfs高可用