如何在项目服务器部署git 并实现自动提交
<p>以下场景适合在服务器当中使用git 方便提交代码,同时不需要外部的git仓库(码云gitee或者github作为管理平台)。依靠服务器本身ssh 连接协议做为git提交的地址,同时利用钩子自动同步项目代码</p><p>1.首先下载git</p>
<div class="jb51code"><pre class="brush:bash;"> sudo apt update
sudo apt install git</pre></div>
<p>2.查看版本是</p>
<div class="jb51code"><pre class="brush:bash;"> git version</pre></div>
<p>3.创建git仓库存储地址</p>
<div class="jb51code"><pre class="brush:bash;">mkdir report_test/aaa.git</pre></div>
<p>4初始化仓库</p>
<div class="jb51code"><pre class="brush:bash;">git init --bare</pre></div>
<p>初始化完成后会生成如下文件</p>
<p>`</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202407/202407211052074.png" /></p>
<p>5 此时git仓库已经创建完成 通过 <code>ssh://k1919@120.46.74.130:/report_test/aaa.git</code> 可以访问到git项目</p>
<div class="jb51code"><pre class="brush:plain;">其中 k1919 是用户名 120.46.74.130为IP地址</pre></div>
<p>(有一点要注意,所使用的用户名要有操作目录的权限)</p>
<p>6 在hooks 下创建 post-update 钩子(或者post-receive钩子)</p>
<div class="jb51code"><pre class="brush:bash;">sudo touch post-receive
sudo chmod +x post-receive</pre></div>
<p>编写post-receive</p>
<div class="jb51code"><pre class="brush:bash;">#!/bin/sh
# 确保这个脚本在Git仓库的.git/hooks目录下运行
REPO_DIR=$(dirname "$0")/..
cd "$REPO_DIR"
# 输出信息
echo "Updating rrr project to the latest master..."
# 切换到目标目录
TARGET_DIR="/project_test/aaa"
cd "$TARGET_DIR"
# 拉取最新代码(假设这里是一个克隆的仓库)
git fetch origin
git reset --hard origin/master
# 或者,如果这不是一个克隆的仓库,你可能需要克隆或拉取代码
# git clone <repository-url> . --branch master --single-branch
# 返回到原始目录(如果需要)
# cd "$REPO_DIR"
exit 0</pre></div>
<p>post-receive和post-update的区别如下</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202407/202407211052075.png" /></p>
<p>6 创建项目,并添加git信息</p>
<div class="jb51code"><pre class="brush:bash;">mkdir project_test/aaa
git init
git remote add origin ssh://k1919@120.46.74.130:/report_test/aaa.git</pre></div>
<p>7 服务器生成 秘钥 <code>ssh-keygen -t rsa</code></p>
<p>跳转到 .ssh 目录 <code>cd ~/.ssh</code> 此时会生成公钥私钥 id_rsa.pub 文件为公钥</p>
<p>如果.ssh 没有authorized_keys 自己创建</p>
<div class="jb51code"><pre class="brush:bash;">touch authorized_keys</pre></div>
<p>将 id_rsa.pub 中的内容 复制到 authorized_keys</p>
<p>8 将自己电脑当中的 公钥也复制到 authorized_keys中,windows路径一般为<br />C:\Users\Administrator.ssh<br />如下图所示</p>
<p style="text-align:center"><img alt="在这里插入图片描述" src="https://img.jbzj.com/file_images/article/202407/202407211052076.png" /></p>
<p>在本地提交代码会自动同步至服务器(并且配置了公钥,不用输入密码)</p>
<div class="jb51code"><pre class="brush:bash;">git add .
git commit -m "kkk"
git pull origin master
git push origin master</pre></div>
<p>到此这篇关于在项目服务器部署git 并实现自动提交的文章就介绍到这了,更多相关服务器部署git 内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
頁:
[1]