liunx创建git仓库,自动更新同步文件

8 篇文章 0 订阅

一 安装git,设置git用户(当前操作是root用户)

# 1.安装git
yum install git

#2.创建git用户 
useradd git
# 为git用户创建密码
password git

生成git仓库

#4.初始化git仓库 

cd /www/wwwroot
mkdir kaoji

chown git:git kaoji/

cd kaoji

git init --bare kaoji.git
#执行初始化会输出
#Initialized empty Git repository in //www/wwwroot/kaoji/kaoji.git/

初始化成功之后就可以在本地客户端clone了(注意kaoji.git文件权限问题,不然提交不上代码)

二 本地客户端测试(可以安装source tree工具操作)

git clone ssh://git@xxxx.xxxx.xxxx:22//www/wwwroot/kaoji/kaoji.git
git clone ssh://{服务端用户}@{你的ip}:{端口号默认是22,如果不是22就写,否则不用写}{你的仓库路径}

自动同步文件脚本

试着提交一个文件看看

touch test.txt

git add .

git commit -m 'test'

git push origin master

此时你到服务器找这个test.txt文件是看不到的
(注意 --bare参数创建的裸仓库,就是没有工作区的,提交上来的文件是看不到的)

(1) 如果要创建一个可以看到项目文件的仓库就按照下面操作执行

cd kaoji.git
#这一句命令是允许文件上传到远程服务器,不执行这句,客户端无法提交文件到服务器
git config receive.denyCurrentBranch ignore 

其实就是在//www/wwwroot/kaoji/kaoji.git/config文件里面添加了
在这里插入图片描述

在这里插入图片描述

接下来创建钩子

在//www/wwwroot/kaoji/kaoji.git/hooks目录下新建文件post-receive

vim post-receive


#!/bin/sh

WORK_TREE='../'
git  --work-tree="${WORK_TREE}" reset --hard
#或者
unset GIT_DIR  //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.'cd .. 
git checkout -f
# 或者
# unset GIT_DIR   #这个是必须要的,不然直接失败
# cd /www/wwwroot/kaoji/    #git制定目录,一般是你的网站目录
# git checkout dev           #先切换分支
# git pull origin dev          #更新分支的内容


##给post-receive执行权限
chmod 755 post-receive
chown -R git:git kaoji/

接下来在客户端执行提交文件,在/www/wwwroot/kaoji/kaoji.git仓库里面就可以看到文件啦;(注意kaoji.git文件权限问题,不然提交不上代码)

(2) 如果要创建一个自动更新的web项目按照下面操作执行

首先创建一个web项目目录例如/home/myweb/把这个目录拥有者变成git

从新更新钩子post-receive的代码

#!/bin/sh
unset GIT_DIR  //清空git的工作目录,(没有使用该代码,报错:remote: fatal: Not a git repository: '.'cd .. 
git checkout -f
WORK_TREE='/home/myweb'

git --work-tree="${WORK_TREE}" reset --hard

现在在客户端提交一个文件,在/home/myweb目录下面就看到文件了,只有操作master提交才会有文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值