环境:
线上:CentOS 8
本地:windows10 64
一.linux服务器操作
1.Linux 上安装git
yum install git -y
2.添加用户git并设置一个密码
useradd -s /bin/bash git passwd git
3.切换到git用户,创建git的代码仓库
su git mkdir /home/git/project.git cd /home/git/project.git git init --bare
二.本地操作
1.生成秘钥并且将生成的公钥添加到服务器
ssh-keygen // 一路回车
复制生成的key (当前用户下的.ssh/id_rsa.pub)
三.继续服务器操作
mkdir -p /home/git/.ssh vim /home/git/.ssh/authorized_keys //把上面复制的key粘贴进去,后保存退出 chown git:git -R /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys //权限不要出错 chmod 755 /home/git/.ssh
四.本地初始化并且添加远程仓库
git init //初始化 git config user.email "xxxx@xx.com" //添加用户邮箱 git config user.name "xxx" //添加姓名 touch test //创建文件 echo "test">>test //添加文件内容 git add . git commit -m 'add test' git remote add xxx ssh://git@127.0.0.1:22/home/git/project.git git push xxx master
五.自动化配置
当我们在本地git push的时候需要将代码推到线上的项目目录。
1.进入线上project.git目录
cd /home/git/project.git
2.进入hooks目录,并且拷贝钩子文件并重命名。
cp post-update.sample post-receive vim post-receive
3.注释其他的代码。将以下内容复制进去。
unset GIT_DIR cd /www/xxx git pull origin master exit 0
将上面xxx换成项目目录,然后保存并退出。
4.进入上面的项目目录,没有目录就创建
如:mkdir -p /www/project
5.初始化仓库并且将仓库属主属组改为git,否则会出现权限问题。
git init git config user.email "xxxx@xx.com" //添加用户邮箱 git config user.name "xxx" //添加姓名 git remote add xxx /home/git/project.git chown -R git:git project
6.然后测试在本地项目添加文件,推送到远程就会将项目也部署到线上项目目录了。