Git 自动化部署

16 小时前
1

Git 自动化部署

最近大创,写了一些代码,当然是vibe出来的,也学了一些git的使用,记录一下。以下为ai创作。

📖 劳工合同保护平台:Git 自动化部署全生命周期档案

本档案记录了项目从本地初始化(Init)到云端自动化流转的每一个标准动作与救急方案。

阶段零:创世大爆炸 (绝对起步)

场景:你刚在本地 VS Code 写完了第一版 Next.js 代码,现在需要建立 Git 仓库。

1. 本地初始化

在本地项目根目录的终端执行: ```bash

初始化本地仓库

git init

将所有文件暂存(注意配置好 .gitignore,不要把 node_modules 传上去)

git add .

完成创世提交

git commit -m "feat: 项目初始化,搭建劳工合同保护平台基础框架" ```

2. 关联云端 (GitHub)

在 GitHub 新建一个空仓库后,将其与本地关联: ```bash

关联远程仓库(建议使用 SSH 地址,避免密码验证烦恼)

git remote add origin git@github.com:ExXTong/ContractProtection.git

(可选)规范主分支名称

git branch -M master

第一次推送到云端(-u 会记住关联,以后只需写 git push)

git push -u origin master ```


阶段一:服务器破冰 (初次连接)

场景:代码已经在 GitHub 上了,现在需要让腾讯云服务器获取第一版代码。

方式 A:服务器直接克隆(推荐,最干净)

如果服务器上还没有代码文件夹: bash cd ~ git clone git@github.com:ExXTong/ContractProtection.git cd ContractProtection npm install npm run build pm2 start npm --name "contract-app" -- run start -- -H 0.0.0.0

方式 B:服务器已有旧文件,强行合体

如果你已经在服务器执行过 git init: ```bash git remote add origin git@github.com:ExXTong/ContractProtection.git

强行拉取并允许不相关的历史合并

git pull origin master --allow-unrelated-histories ```


阶段二:日常敏捷开发流 (黄金循环)

场景:项目进入正常开发节奏,每天需要更新 UI 或修复 Bug。

这是你以后每天唯一需要重复的标准动作:

Step 1: 本地开发与推送

在 VS Code 中修改完代码后(或使用界面按钮同步): bash git add . git commit -m "update: 优化了合同上传的验证逻辑" git push

Step 2: 服务器一键生效

登录腾讯云服务器,进入项目目录,运行你写好的部署脚本: bash ./deploy.sh

附:终极 deploy.sh 脚本标准源码 (此脚本采用 fetch + reset 策略,彻底杜绝服务器端的代码合并冲突) ```bash

!/bin/bash

echo "🚀 正在强制同步 GitHub 最新代码..."

放弃服务器端的所有本地修改,完全以 GitHub 为准

git fetch --all git reset --hard origin/master

echo "📦 正在安装依赖..." npm install

echo "🏗️ 正在构建生产版本 (解除内存限制)..." export NODE_OPTIONS="--max-old-space-size=3072" npm run build

echo "♻️ 正在重启 PM2 守护进程..." pm2 restart contract-app || pm2 start npm --name "contract-app" -- run start -- -H 0.0.0.0

echo "✅ 平台更新完毕,可通过 HTTPS 访问!" ```


阶段三:危机干预 (时光倒流与强制覆盖)

场景:合并代码时弄乱了、或者推送了包含高危错误的代码,需要紧急回档。

核心原则:服务器不思考,一切以本地和 GitHub 的最终共识为准。

1. 救本地:彻底放弃还没提交的“瞎改”

如果在本地写代码时思绪全乱了,想回到上一次提交的干净状态: ```bash

撤销所有未提交的修改(慎用!刚敲的代码会消失)

git checkout . ```

2. 救历史:本地时光倒流并覆盖 GitHub

如果已经把错误的代码 push 到了 GitHub(就像之前发生的那样): ```bash

1. 查阅历史,找到那个“正确”的节点 ID

git log --oneline -n 5

2. 本地强行回滚到正确的节点(例如 620c88b)

git reset --hard 620c88b

3. 带着正确的历史,暴力覆盖 GitHub

git push origin master --force ```

3. 救服务器:服务器状态异常

如果服务器在更新时报 divergent branches 或其他 Git 历史错乱: ```bash

不要犹豫,直接强行重置为云端状态

git fetch origin master git reset --hard origin/master ```


阶段四:安全加固 (漏洞修复规范)

场景:依赖库提示 high severity vulnerabilities

操作规范:永远在本地修,永远不在服务器修。

  1. 本地修复: bash # 使用官方源强制修复 npm audit fix --force --registry=https://registry.npmjs.org/
  2. 本地质检: 运行 npm run dev 确保项目没崩。
  3. 上交云端: git commitgit push
  4. 服务器同步: 执行 ./deploy.sh

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...