MODULE 05 · 走出本机

Git、GitHub、域名与服务器:把应用真正交给别人

不教你背按钮位置,教你看懂一条应用从电脑走到公网的路。

这节课结束时

你会理解版本、远程仓库、部署、域名、DNS、HTTPS、环境变量、日志与回滚各自负责什么。

先把名字说准

Git / Commit / GitHub

专业定义

Git 是分布式版本控制系统;工作区保存正在编辑的文件,暂存区决定下一次快照纳入什么,Commit 记录暂存区内容及其父版本与说明;GitHub 是托管 Git 仓库并提供协作、审查与自动化的平台。三者不是同一个东西。

普通人怎么理解

Git 是项目的时间机器;Commit 是你给某个可靠节点拍的一张有名字的照片;GitHub 是把这套照片和文件放到远端,方便协作、形成远端副本并连接部署。重要项目仍要有独立备份和恢复演练。

它不是什么

Commit 不是“把整个文件夹保存一下”:未暂存的改动不会自动进入这次快照,未追踪文件也必须明确选择。GitHub 不是让网站自动上线的魔法;能推送,不代表能构建或安全运行。

一分钟自测

你能否指出当前线上版本对应哪个 Commit,并在失败时回到上一个可用节点?

先把名字说准

域名 / DNS / 服务器

专业定义

域名是人类可读的名称;DNS 把名称解析到服务地址;服务器或托管平台运行构建后的应用并响应请求。HTTPS 是 HTTP 通过 TLS 建立的加密连接;证书把服务身份与公钥绑定并支持端点认证,TLS 握手负责协商参数并建立会话密钥。

普通人怎么理解

域名是店名,DNS 是导航,服务器是实际营业的房子,HTTPS 是门口可验证的安全封条。买了店名,不等于房子已经开门。

它不是什么

服务器不是所有项目都必须自己购买;静态站、托管平台和自管服务器是不同运营选择。选最轻但能满足数据与控制要求的方案。

一分钟自测

你能否从域名一路解释到应用进程,并知道哪一层出错该查哪里?

先把名字说准

API / 应用程序接口

专业定义

系统之间按约定交换请求与响应的接口,通常规定地址、方法、认证、输入结构、返回结构、错误与频率限制。

普通人怎么理解

它像系统之间的一张办事窗口说明:去哪里、带什么、能办什么、办失败会收到什么回执。

它不是什么

API 不是网页按钮,也不是拿到 Key 就能随便调用。它可能收费、限流、记录数据,并要求服务器端保管凭证。

一分钟自测

调用前,你能否说清数据会发给谁、密钥放哪里、一次多少钱、失败怎样处理?

先把名字说准

Environment variable / 环境变量

专业定义

由运行环境向进程注入的配置键值,用来区分开发、测试与生产配置。它是配置传递机制,不天然等于秘密保险箱。

普通人怎么理解

同一套代码到了不同地方,需要不同地址和凭证;环境变量就是在开机或部署时塞进去的那张配置纸。

它不是什么

变量名写着 SECRET 不代表安全。进入浏览器 bundle、公开日志或构建产物的值仍可能泄露;带有前端公开前缀的变量通常就是给用户端看的。

一分钟自测

你能否确认它只在需要的进程可见、没有进入仓库和前端,并知道怎样轮换?

先把名字说准

Log / 日志

专业定义

应用、平台与基础设施在运行时记录的时间、事件、状态与错误证据,用于观察、诊断和审计;日志本身也需要分级、保留与脱敏。

普通人怎么理解

它是系统留下的行车记录:什么时候发生了什么、在哪一层失败、错误原文是什么。

它不是什么

日志不是把所有用户数据永久打印出来,也不是模型一句“应该是网络问题”。没有时间、请求位置和错误原文的描述,很难排错。

一分钟自测

出现白屏时,你能否拿出浏览器、构建和服务日志中的具体证据,并避免把密码和个人信息贴出去?

DELIVERY MAP · 上线不是一个按钮

本地可用,只完成了一半。

上线是一条可验证的交付链。每个节点都要知道输入、输出与失败信号。

从本机到公网
从本机到公网
节点它负责什么你要验什么
本地运行证明代码能在开发环境工作核心路径、移动端、错误日志
Git Commit固定一个可追溯版本变更说明与测试结果
远程仓库远端保存与协作敏感信息未提交
构建与部署把源码变成可运行服务构建成功、进程在线
域名与 DNS把名称指向服务解析正确、旧缓存已更新
HTTPS加密并验证连接证书有效、自动续期
监控与回滚发现失败并恢复日志可查、上一版本可回

MINIMUM VOCABULARY · 必须会的少数词

不需要成为工程师,但要能读懂 AI 正在动什么。

这些词决定安全、费用与可维护性,不能只凭“它说完成了”。

01

Terminal

向电脑发命令并读取真实输出的窗口;错误原文比“好像不行”更有用。

02

Runtime / 运行时

代码真正执行的环境,例如浏览器或服务器上的 Node.js。

03

Dependency / 依赖

项目借用的外部代码及版本;新增依赖就新增供应链与升级责任。

04

Build / 构建

把源文件检查、转换并产出可部署内容;本地能打开不等于生产构建能通过。

05

Deploy / 部署

把某个可追溯版本交给运行环境并切换流量;成功信号必须包含公网实测。

06

Rollback / 回滚

把代码、部署、配置或数据恢复到已知可用状态;四种对象不能混成一句“退回上版”。

ONE REAL ROUTE · 第一版只走最轻路线

本地单文件应用,不必先买服务器,也不必先接数据库。

默认路线是:本地验收 → Git 固定版本 → 推送远程仓库 → 连接受管静态托管 → 获得平台 HTTPS 地址 → 外部实测 → 有需要再绑定自有域名。具体按钮会变,链路与证据不会变。

每一步都要拿到证据
每一步都要拿到证据
动作你让编码 Agent 报告什么人怎样验
检查版本git status 与将进入提交的文件没有密钥、缓存和无关文件
形成快照git add 的范围、commit 标识与测试记录快照对应当前已验收版本
推送远端远程地址、分支与推送结果网页仓库能看到同一 commit
托管部署构建命令、输出目录、部署日志与平台地址公网地址返回正确页面
外部验收桌面与手机核心路径结果第二个人完成填写、刷新、复制
绑定域名(可选)DNS 记录、证书状态与生效检查HTTPS 有效且指向正确版本
PROMPT可复制,但先按你的现场改
不要替我点击付费或修改域名。先判断这是静态应用还是需要后端;给出最轻部署路线,并逐步说明:本步要改什么、成功证据、失败信号、回滚方式。每完成一步停下来等我验收,不要一次跑到最后。

FOUR ROLLBACKS · 回滚不是一句命令

先说清出了什么事,再决定退哪一层。

版本控制只能处理它管理的文件。线上部署、环境配置和数据库数据各有自己的恢复机制。

四种回滚对象
四种回滚对象
对象典型问题正确动作
Git 历史代码改错但尚未发布优先新增反向 commit;共享历史谨慎 reset
线上部署新版本白屏或核心路径坏平台切回上一已知可用部署
环境配置域名、变量或权限误配恢复上一配置快照并轮换泄露凭证
数据写入错误或误删除按备份与迁移方案恢复;不能靠 Git 找回数据库

DO NOT OUTSOURCE · 三件不能盲信

模型可以写部署命令,但风险仍由人承担。

上线前至少亲自确认三条底线。

01

密钥不进浏览器

任何用户可查看的前端代码都不能保存私密 API Key。

02

权限从小开始

数据库、云服务和第三方账号只给任务所需的最小权限。

03

先有回滚再更新

知道怎样回到上一个可用版本,再把新版本交给真实用户。

PROMPT可复制,但先按你的现场改
请先做部署前审计,不要执行部署:列出会写入哪些文件、需要哪些环境变量、哪些端口与外部服务、健康检查方法、回滚命令和最坏失败后果。没有证据的地方标“未验证”。

CHOICE · 域名和服务器怎么买

先从控制需求选方案,不从促销页选方案。

只展示内容的站点优先静态托管;需要登录、数据库、邮件或后台任务时再选带后端的平台或服务器。比较费用时,把运维时间、备份、监控和安全更新一起算进去。

本课作业

把第一版应用交给一个外部用户

  1. 创建一个说明清楚的 Commit,并推送到远程仓库。

  2. 选择托管方式,写明为什么它够用。

  3. 先用托管平台提供的 HTTPS 地址完成外部测试;有自有域名时再绑定并验证证书。

  4. 让第二个人打开、填写、刷新、复制;记录失败。

过关标准

你能说出线上版本、回滚路径、数据位置和四项外部实测证据。