安装服务器端git

参考文章:

https://www.jianshu.com/p/a8886a5f46d6
https://www.jianshu.com/p/7a695fe06b18

https://blog.csdn.net/glx490676405/article/details/78329004

 

一:服务器端安装git

二:git实现自动同步到站点目录(www),使用钩子

 

安装git:

① yum安装方式

    #yum install -y git

②安装后查看git版本

   # git version

③创建 git 用户,并为 git 用户设置密码

  # id git              #查看git用户是否存在

  # useradd git   #创建git用户

  # passwd git    #为git用户创建密码 (zkm)

服务器端创建 Git 仓,设置 /git/data/test.git  为 Git 仓库 ,然后初始化项目测试目录,然后把 Git 仓库的 owner 修改为 git

   # mkdir -p /git/data/test.git  #创建仓库目录

   # cd /git/data/    #进入data目录

   # git init --bare ./test.git

   # cd /git/   #切换到git目录

  # ll      #查看data项目文件夹的拥有者

 drwxr-xr-x 3 root root 4096 Jan 13 13:08 data  #拥有者是root用户名 

  # chown -R git:git data   #将拥有者改为git用户

  # ll #再次查看data项目文件夹的拥有者 

drwxr-xr-x 3 git git 4096 Jan 13 13:08 data #拥有者是git用户 

 

以上操作完后,pc客户端git克隆一下服务器端git操作,如下图 :

注意(克隆过程中会提示,选择yes即可,因为服务器没有配置SSH连接,需要输入git用户的密码,git/zhimakaimen),无需输入密码需要再配置,本次先不涉及

 

pc客户端git连接服务器端git效果

 

 

 

 

 

 

(我们往远程仓库推送了index.php文件,虽然提示推送成功,但是我们现在在服务器端还看不到效果,心理总是不爽。想在站点中马上看到,那自动同步就派上用场了)

 

以上已经实现本地克隆、推送成功,但推送成功后服务器不会自动更新

 

需要实现自动同步到站点目录(www),自动同步功能用到的是 git 的钩子功能

 

服务器端:

进入裸仓库:/git/data/test.git/

 

# cd /git/data/test.git/
# cd hooks

 

创建post-receive文件,输入内容
# vim post-receive
git --work-tree=/root/www/html checkout -f

 

保存退出后,将该文件用户及用户组都设置成git
# chown git:git post-receive
由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
# chmod +x post-receive

 

最后将项目更目录设置git权限,否则git无写入权限
chown git:git root

 


如果你在Git推送的工程中发现推送成功 但是在www目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的!
假设你的www目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,
反正你要服务器上的git用户有权限进入www文件夹

以上操作结束后,在pc客户端创建两个文件,同步到git服务器,然后去服务器根目录/root/www/html中查看,可以看到提交的文件

 

 

 

 

posted on 2020-06-05 15:21  日月星辰$  阅读(393)  评论(0编辑  收藏  举报