zoukankan      html  css  js  c++  java
  • 搭建git私有服务器及同步更新自己网站的文件

    一、搭建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.把你的公钥放服务器上

    放在这个.ssh目录的authorized_keys文件,没有就自己创建,有多个每个公钥空一行就可以了

    /home/git/.ssh/authorized_keys


    6.客户端测试(上面都是服务器敲的命令)【ip那里可以换成域名】

    git clone git@ip:/具体目录/yourweb.git
    如:

    git clone git@ip:/home/ubuntu/yourweb.git

    若不是默认端口,比如5022端口(注意那么git用户就要改成可登录的了,比如/bin/sh)

     git clone ssh://git@ip:5022/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已经更新.

    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


  • 相关阅读:
    OCP 071【中文】考试题库(cuug整理)第51题
    OCP 071【中文】考试题库(cuug整理)第50题
    OCP 071【中文】考试题库(cuug整理)第49题
    OCP 071【中文】考试题库(cuug整理)第48题
    OCP 071【中文】考试题库(cuug整理)第47题
    OCP 071【中文】考试题库(cuug整理)第46题
    three 优化压缩
    个人最近功能demo总结
    下载文件,204问题
    debug和release的web.config分开配置
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286553.html
Copyright © 2011-2022 走看看