准备环境:
虚拟机 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文件
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文件上传至服务器
复制该文件内容至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的设置
实现目录文件同步:
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