Git服务器搭建和钩子使用 - Go语言中文社区

Git服务器搭建和钩子使用


git的安装

1 安装git

git --version #查看当前系统安装的git版本
yum install -y git #安装git

如果安装了会显示对于的版本,没有安装则执行安装命令。卸载命令
cd /usr/bin/git #git一般默认位置
sudo rm -rf git* #卸载

2 添加git的管理的账户和设置密码

# 添加git账户
$ adduser git

# 修改git的密码
$ passwd git
# 然后两次输入git的密码确认后。

# 查看git是否安装成功
$ cd /home && ls -al
# 默认还给我们分配一个名字叫git的组。

遇到的问题:
【1】 添用户报错:useradd:警告:此主目录已经存在
解决办法 userdel -rf mysql

3 配置服务端的ssh访问

# 1.切换到git账号
$ su git
# 2.进入 git账户的主目录
$ cd /home/git

# 3.创建.ssh的配置,如果此文件夹已经存在请忽略此步。
$ mkdir .ssh

# 4. 进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥。
$ cd /home/git/.ssh
$ touch authorized_keys

# 5. 设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
$ chmod 700 /home/git/.ssh/
$ chmod 600 /home/git/.ssh/authorized_keys

4 配置客户端的ssh私钥并上传服务器

 rz #拷贝公钥 id_rsa.pub到git服务器,位置 /home/git/.ssh

本地上传文件到服务器
5 服务器端添加客户端的SSH公钥

cat id_rsa.pub >> authorized_keys
# 在客户端用ssh测试连接远程服务器
$ ssh 服务器ip

服务器端创建测试git仓库

1 创建远程仓库

$ cd /home/git
# 在用户主目录下创建 demo.git仓库的文件夹
$ mkdir demo.git  && cd demo.git
# 在test.git目录下初始化git仓库
$ git init --bare
# 输出如下内容,表示成功
Initialized empty Git repository in /home/git/demo.git/

2 客户端测试连接git 远程仓库

mkdir demo && cd demo #本地创建项目
git init #初始化仓库
git add
git commit -m "注释"
git remote add origin git@ip地址:demo.git #把当前仓库跟远程仓库添映射
git push -u origin master #推送到远程仓库

遇到的问题
[1]关联远程仓库提示:‘fatal:remote origin already exists’
git remote rm origin

自动同步到站点目录

nginx.conf 目录 /etc/nginx

cd /home/git/demo.git #进入项目仓库
cd hooks
//创建post-receive文件
vim post-receive
//在该文件里输入以下内容
#!/bin/bash
git --work-tree=/home/demo checkout -f
// 这里demo是自己的项目站点目录
//保存退出后,将该文件用户及用户组都设置成git
chown git:git post-receive
//由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
chmod +x post-receive

注意:通过域名或IP直接访问项目,需要配置nginx.conf文件

server {
        listen       8070;
        server_name  IP;
        root         /home/demo; #项目目录
        # Load configuration files for the default server block.

         add_header X-Frame-Options "SAMEORIGIN";
         add_header X-XSS-Protection "1; mode=block";
         add_header X-Content-Type-Options "nosniff";

         index index.html index.htm index.php;

         charset utf-8;

         location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

         location = /favicon.ico { access_log off; log_not_found off; }
         location = /robots.txt  { access_log off; log_not_found off; }


        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;

参考文章

https://www.cnblogs.com/fly_dragon/p/8718614.html
https://blog.csdn.net/baidu_30000217/article/details/51327289
https://www.jianshu.com/p/aeccbe91fff3

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Helenxd/article/details/104251563
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢