git远程服务器部署

admin4年前git798

添加用户组与用户

$ groupadd git
$ useradd git -g git

创建证书登录:
    收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。如果没有该文件创建它:

$ cd /home/git/$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys

初始化Git仓库

 cd /www/wwwroot/
 mkdir mygit
$ chown git:git mygit/
$ cd mygit
$ git init --bare test.git

把仓库所属用户改为git:

chown -R git:git runoob.git

复制仓库到网站目录

cd site/
git clone /www/wwwroot/mygit/test.git   
 #设置权限
 chown -R git test

关键:添加钩子

cd /www/wwwroot/mygit/test.git/hooks
# 生成post-receive文件
touch post-receive
# 使用vim编辑
vim post-receive

粘贴如下内容

#!/bin/sh
# 打印输出
echo '======上传代码到服务器======'
# 打开线上项目文件夹
cd /www/wwwroot/site/test
# 这个很重要,如果不取消的话将不能在cd的路径上进行git操作
unset GIT_DIR
git pull origin master
# 自动编译vue项目,如有需要请去掉前面的#号
# npm run build
# 自动更新composer(我暂时没试过)
# composer update
echo $(date) >> hook.log
echo '======代码更新完成======'

保存后给 post-receive 文件加上运行权限

chmod +x post-receive


关键知识点:复制过来的git目录,也就是网站目录,必须要有git权限, 钩子文件,也要有git权限与运行权限

文章参考:https://www.runoob.com/git/git-server.html

               https://zhuanlan.zhihu.com/p/100834900

 

相关文章

使用github的方法

在github建库在本地用GIT bash 生成公钥,命令如下:ssh-keygen -t rsa -C "xxxxx@xxxxx.com"...

git在本地有多个远程库的操作与管理

git在本地有多个远程库的操作与管理

当git在本地有多个远程库的时候,第一次git push的时候,要输入完整的命令,git push "别名" master在sublime里运行的时候,就会默认上次指定的"...

本地设置git指向,以及sublimet与简化推化流程

 git remote add my git@192.168.8.198:/***/****.git git push --set-upstream my master执行以上两个...

git 合并add commit push 三个命令合为一个

将add、commit、push 三个命令合为一个:git config --global alias.cmp '!f() { git add -A && git commit...

git里面origin是从哪里来的,是什么意思

已有的回答里都没有解释清楚'origin'是从哪里来的。使用git,一般的步骤是这样的:1. 在本地建立git版本库:在本地工程目录(如: ~/myProject)下执行:  ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。