虚拟机 Ubuntu 搭建Git服务器

准备环境:

虚拟机 Ubuntu

本地 Win7

搭建步骤:

1.安装Git和ssh

sudo apt-get install git
sudo apt-get install openssh-server openssh-client

2.增加Git用户

sudo adduser git

  给用户git sudo权限,切换至root用户下修改/etc/sudoers文件

虚拟机 Ubuntu 搭建Git服务器

3.创建ssh证书认证文件

sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys

  修改authorized_keys文件的权限

sudo chmod 777 /home/git/.ssh/authorized_keys

4.把需要访问git服务器的客户端公钥id_rsa.pub的内容复制到authorized_keys文件

  本地git bash,将客户端id_rsa.pub文件上传至服务器

虚拟机 Ubuntu 搭建Git服务器

   复制该文件内容至authorized_keys文件

cat /home/git/id_rsa.pub
echo "<将上一步输出的内容复制>" >> /home/git/.ssh/authorized_keys

5.修改相关文件权限

sudo chmod 700 /home/git
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/authorized_keys
sudo chown -R git:git /home/git
sudo chown -R git:git /home/git/.ssh
sudo chown -R git:git /home/git/.ssh/authorized_keys

6.建立代码仓库

sudo mkdir /home/mygit

  初始化裸仓库

sudo git init --bare /home/mygit/project.git

  更改权限

sudo chown -R git:git /home/mygit/project.git

7.在客户端clone仓库

$ git clone git@<git服务器ip地址>:/home/mygit/project.git

8.禁用git用户登录权限,修改/etc/passwd文件中git的设置

虚拟机 Ubuntu 搭建Git服务器

  

实现目录文件同步:

1.进入裸仓库的hoos目录

cd /home/mygit/project.git/hooks

2.创建post-receive文件

sudo touch post-receive

3.修改该文件内容(更新代码位置是:/home/mygit/project)

#!/bin/sh
GIT_WORK_TREE=/home/mygit/project  git checkout -f

4.添加执行权限

sudo chmod +x post-receive

5.修改所有者

sudo chown -R git:git /home/mygit/project

参考文章:

https://www.cnblogs.com/daner1257/archive/2019/04/24/10761849.html

https://blog.csdn.net/weixin_42130167/article/details/84565059

 https://blog.csdn.net/u012763794/article/details/51007961