标签:wro 新建 it服务 项目 远程 很多 global 同步 war
1.实现过程
在linux上安装git服务、创建源版本库、从源版本库克隆得到网站目录,然后利用git中的hooks机制,在git push推送代码到源版本库的时候,触发编写的shell脚本,更新网站目录下的代码。
2.安装git服务
[root@xxx ~]# cd /usr/local/src
[root@xxx src]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.15.2.tar.gz
[root@xxx src]# tar -zxvf git-2.15.2.tar.gz
[root@xxx src]# cd git-2.15.2
[root@xxx git-2.15.2]# ./configure --prefix=/usr/local/git
[root@xxx git-2.15.2]# make && make install
对git config进行配置,表明当前是哪个用户进行的git操作
[root@xxx git-2.15.2]# git config --global user.name xincanzhe
[root@xxx git-2.15.2]# git config --glocal user.email 1900103003@qq.com
[root@xxx git-2.15.2]# git config --list
3.创建源版本库
创建git管理的用户和组,对git服务进行管理。因为该git账号会被很多人使用进行版本库的克隆,为了安全,禁止使用git用户进行ssh登录
[root@xxx git-2.15.2]# groupadd git
[root@xxx git-2.15.2]# useradd git -g git
[root@xxx git-2.15.2]# passwd git
[root@xxx git-2.15.2]# vim /etc/passwd
将
git:x:1001:1001::/home/git:/bin/bash
改为
git:x:1001:1001::/home/git:/bin/git-shell
自定义的总版本库目录:/home/git/gitrepos
测试项目的版本库目录:/home/git/gitrepos/test
[root@xxx git-2.15.2]# cd /home/git/gitrepos/test
[root@xxx test]# git init --bare #源版本库应该为裸版本库,即需要加参数--bare
[root@xxx test]# chown -R git:git /home/git/gitrepos #修改版本库所属用户和组,即git
3.从源版本库克隆得到网站目录
自定义网站目录:/data/wwwroot/test
[root@xxx wwwroot]# git clone git@48.107.56.223:/home/git/gitrepos/test #格式 git clone 用户@IP:源版本库目录
[root@xxx wwwroot]# chown -R git:git /data/wwwroot/test #修改网站所属用户和组,即git
4.hooks机制
[root@xxx wwwroot]# vim /home/git/gitrepos/test/hooks/post-receive
[root@xxx wwwroot]# chmod +x /home/git/gitrepos/test/hooks/post-receive
post-receive文件内容为:
#!/bin/bash
DIR=/data/wwwroot/test
git --work-tree=${DIR} clean -fd
git --work-tree=${DIR} checkout --force
5.测试
在window环境下,安装对应的git服务(同样需要配置git config),然后创建git库。创建git库有三种方式:
a.从源版本库克隆;
$ git clone git@48.107.56.223:/home/git/gitrepos/test;
b.在本地新建空目录,创建空的git库,然后与源版本库进行关联;
$ mkdir test;
$ git init;
$ git remote add origin git@48.107.56.223:/home/git/gitrepos/test;
c.将本地已存在的git库与源版本库进行关联,假设已存在的git库为oldtest;
$ cd oldtest;
$ git remote add origin git@48.107.56.223:/home/git/gitrepos/test;
这边仅举例从源版本库克隆的方式:
$ cd test
$ touch readme.txt
$ git add readme.txt
$ git commit -m "add readme.txt file"
$ git status
$ git push -u origin master
查看48.107.56.223服务器网站目录是否同步更新
[root@xxx ~]# ls /data/wwwroot/test
6.其他git相关命令
版本库放在github官网,需要ssh方式连接,生成公钥:ssh-keygen -t rsa -C "github账号"
拉取远程版本库代码:git pull origin master
标签:wro 新建 it服务 项目 远程 很多 global 同步 war
原文地址:https://www.cnblogs.com/xincanzhe/p/10693514.html