Linux git服务器

    xiaoxiao2021-03-25  82

    1.yum安装Git服务器 [root@git ~]# cd src/ [root@git src]# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm [root@git src]# rpm -ivh epel-release-5-4.noarch.rpm Preparing...                ########################################### [100%]     package epel-release-5-4.noarch is already installed [root@git ~]# yum list [root@git ~]# yum install -y git 2.创建一个git用户,用来运行git服务 [root@git ~]# adduser git 3.创建客户端登录证书 略; 4.初始化Git仓库 注,先选定一个目录作为Git仓库,这里是/var/git/project.git。 [root@git ~]# cd /var/git/ [root@git git]# git init --bare project.git [root@git project.git]# ls branches  config  description  HEAD  hooks  index  info  objects  refs 执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git: [root@git git]# chown -R git.git project.git [root@git git]# ls -l 总计 4 drwxr-xr-x 7 git git 4096 05-09 13:50 project.git 5.禁用shell登录 注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行: [root@git ~]# cat /etc/passwd | grep git git:x:1001:1001:git version control:/home/git:/bin/bash 改为: [root@git ~]# vim /etc/passwd git:x:1001:1001:git version control:/home/git:/usr/bin/git-shell 这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。 6.克隆远程仓库 注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上运行: 7.实现自动同步到站点目录(www) 自动同步功能用到的是 git 的钩子功能,服务器端:进入裸仓库 cd /var/git/project.git cd hooks //这里我们创建post-receive文件 vim post-receive //在该文件里输入以下内容 #!/bin/bash git --work-tree=/var/www/html checkout -f //保存退出后,将该文件用户及用户组都设置成git chown git:git post-receive //由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限 chmod +x post-receive 现在我们可以在本地计算机中修改index.php文件,或者添加一个新文件,提交到远程仓库,然后到/var/www/html下面,看看有没有我们刚才提交的文件。 如果你在Git推送的工程中发现推送成功 但是在html目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的! 假设你的www目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,反正你要服务器上的git用户有权限进入www文件夹。
    转载请注明原文地址: https://ju.6miu.com/read-40352.html

    最新回复(0)