在项目服务器部署git 并实现自动提交

以下场景适合在服务器当中使用git 方便提交代码,同时不需要外部的git仓库(码云gitee或者github作为管理平台)。依靠服务器本身ssh 连接协议做为git提交的地址,同时利用钩子自动同步项目代码

  1. 首先下载git
bash 复制代码
 sudo apt update  
 sudo apt install git

2.查看版本是

bash 复制代码
 git version

3.创建git仓库存储地址

bash 复制代码
mkdir report_test/aaa.git

4初始化仓库

bash 复制代码
git init --bare

初始化完成后会生成如下文件

`

5 此时git仓库已经创建完成 通过 ssh://k1919@120.46.74.130:/report_test/aaa.git 可以访问到git项目

复制代码
其中   k1919 是用户名 120.46.74.130为IP地址

(有一点要注意,所使用的用户名要有操作目录的权限)

6 在hooks 下创建 post-update 钩子(或者post-receive钩子)

bash 复制代码
sudo touch post-receive
sudo chmod +x post-receive

编写post-receive

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

post-receive和post-update的区别如下

6 创建项目,并添加git信息

bash 复制代码
mkdir project_test/aaa
git init
git remote add origin ssh://k1919@120.46.74.130:/report_test/aaa.git

7 服务器生成 秘钥 ssh-keygen -t rsa

跳转到 .ssh 目录 cd ~/.ssh 此时会生成公钥私钥 id_rsa.pub 文件为公钥

如果.ssh 没有authorized_keys 自己创建

bash 复制代码
touch authorized_keys

将 id_rsa.pub 中的内容 复制到 authorized_keys

8 将自己电脑当中的 公钥也复制到 authorized_keys中,windows路径一般为

C:\Users\Administrator.ssh

如下图所示

在本地提交代码会自动同步至服务器(并且配置了公钥,不用输入密码)

bash 复制代码
git add .
git commit -m "kkk"
git pull origin master
git push origin master
相关推荐
SKH.23 分钟前
Linux驱动-系统移植
linux·服务器
根目录下的猫24 分钟前
虚拟机复制过来运行时:“虚拟机使用的此版本,VMware Workstation 不支持的硬件版本。”错误解决办法,亲测可用
linux·运维·服务器·后端
涉密IT资质笔记30 分钟前
2026 涉密资质三类硬性条件对照:军工 / 集成 / 印制参数矩阵与易错点
服务器·线性代数·矩阵·创业创新
mengge.cloud1 小时前
Redis
运维·服务器·数据库·redis·缓存·云计算
Smoothcloud润云1 小时前
GPU服务器租用实例DNS与HTTPS下载排障实战
大数据·运维·服务器·人工智能·https·gpu算力
Apipi*1 小时前
30天速通Linux 第五章Linux 进程管理
linux·运维·服务器
白帽攻防录1 小时前
SRC 挖洞:TanStack Start 服务器函数 XSS 深度复盘,CVE-2026-102989 怎么窃取用户会话
运维·服务器·网络安全·xss
小此方2 小时前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
溪语流沙2 小时前
【Web全栈进阶】JWT无状态认证:签发、校验、刷新
前端·git·python·github
FITA阿泽要努力2 小时前
第 1 周·第 3 讲|工具如何交给模型:工具定义、参数与结构化调用
服务器·数据库·python·agent