社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
1、首先在网站站点下创建XXX项目并创建一个空仓库
mkdir xxx && cd xxx
#创建空仓库
git init
2、修改xxx文件权限为git用户所有
#切换到xxx 同级目录下执行
chown -R git:git xxx
3、配置xxx/.git 文件夹下的config,如下截图
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[receive]
denyCurrentBranch = ignore
4、本地电脑 git clone 远程仓库
$ git clone git@服务器ip:/yyy/yyy/yyy/html/xxx/.git
5、往本地仓库添加项目文件 执行一系列git操作提交到远程仓库
#进入xxx 目录下
git add . #添加所有文件到本地仓库暂存区
git commit -m '初始化xxx项目' #提交到本地仓库
git push origin master #push到远程仓库
服务器进入xxx目录下查看 git log 有如下提交记录则代表成功
此时查看服务器xxx目录是没有文件的,需要在执行git reset --hard 之后才能同步到服务器
#进入xxx 目录下执行
git reset --hard
此时用到git钩子函数解决本地自动同步到服务器问题
6、实现自动同步到站点目录(xxx)目录下
# 进入服务器端,进入裸仓库
cd /yyy/yyyy/yyyyy/xxx/.git
#再进入 .git hooks
cd hooks
//创建一个post-receive文件
vim post-receive
#输入以下内容
#!/bin/bash
git --work-tree=/yyy/yyyy/yyyyy/xxx checkout -f
#保存并退出,并将改文件用户及用户组改成git
chown git:git post-receive
//由于该文件其实就是一个shell脚本文件,应该为其设置可执行权限
chmod +x post-receive
配置钩子同步函数完成。
测试完成,自动同步成功,配置完成!
如果你在Git推送的工程中发现推送成功 但是在xxx目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的! 假设你的xxx目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,反正你要服务器上的git用户有权限进入xxx文件夹。
给xxx目录授权775:命令:chomd 755 xxx
出现以下截图情况则代表xxx项目下的子文件夹不是git用户拥有权限,按如下修改重新push即可
#1、修改xxx 文件夹以及下面的所有文件的所属用户为 git -R 为递归
chown -R git xxx
#2、修改xxx 文件夹以及下面的所有文件的所属用户组为 git
chgrp -R git xxx
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!