一、Windows 本地 Git 版本管理的基本流程
假设你的项目目录是:
bash
D:\Projects\OA_backend
你可以在 VS Code 或 IntelliJ IDEA 的终端中进入该目录:
bash
cd D:\Projects\OA_backend
然后执行:
bash
git init
这一步会在当前项目目录下创建隐藏文件夹:
bash
.git
只要有 .git 文件夹,这个项目就已经成为一个本地 Git 仓库。
1. 查看当前项目状态
bash
git status
它会告诉你:
text
哪些文件是新建的
哪些文件被修改了
哪些文件已经加入暂存区
当前是否有未提交内容
这是最常用的 Git 命令之一。
2. 添加文件到暂存区
添加所有改动:
bash
git add .
或者只添加某个文件:
bash
git add src/main/java/com/company/xxx/UserController.java
简单理解:
text
git add = 告诉 Git:这些改动我要纳入下一次版本快照
3. 提交一个版本
bash
git commit -m "初始化项目结构"
或者:
bash
git commit -m "完成用户登录接口"
简单理解:
text
git commit = 保存一个明确的版本节点
以后你就可以回到这个版本、比较这个版本、查看这个版本改了什么。
4. 查看提交历史
bash
git log
更简洁一点:
bash
git log --oneline
例如:
text
a13f2c1 完成用户登录接口
9b7d8a0 初始化项目结构
每一行都是一个版本。
5. 查看某个文件改了什么
bash
git diff
这个命令会显示当前未提交的代码改动。
如果你想看某个文件:
bash
git diff src/main/java/com/company/xxx/UserService.java
6. 回退未提交的修改
比如你改坏了某个文件,想恢复到最近一次提交的状态:
bash
git restore 文件路径
例如:
bash
git restore src/main/java/com/company/xxx/UserService.java
如果想恢复所有未提交修改,要非常谨慎:
bash
git restore .
这会丢弃当前工作区的修改。
7. 创建分支进行新功能开发
比如你要开发登录功能,可以创建一个新分支:
bash
git checkout -b feature-login
查看当前分支:
bash
git branch
开发完成并提交:
bash
git add .
git commit -m "完成登录功能"
再切回主分支:
bash
git checkout main
合并功能分支:
bash
git merge feature-login
简单理解:
text
main/master:稳定主线
feature-login:临时开发线
这样即使新功能写坏了,也不会直接污染主分支。
二、最适合新手的本地 Git 工作流
你可以先不用复杂分支,只采用这个流程:
bash
git status
git add .
git commit -m "本次修改说明"
每完成一个相对完整的小功能,就提交一次。
例如:
bash
git add .
git commit -m "添加用户实体类和用户表Mapper"
bash
git add .
git commit -m "完成登录页面基础布局"
bash
git add .
git commit -m "修复后端跨域配置问题"
不要等整个项目做完才提交。比较好的习惯是:
text
完成一个小功能 → 提交一次
修复一个 bug → 提交一次
调整一次配置 → 提交一次
三、建议先创建 .gitignore 文件
很多文件不应该被 Git 管理,例如:
text
编译产物
IDE 缓存
依赖目录
日志文件
临时文件
如果是 Java Spring Boot 项目,可以在项目根目录创建 .gitignore:
gitignore
target/
*.class
*.log
.idea/
*.iml
.DS_Store
.env
如果是 Vue / React 前端项目,可以写:
gitignore
node_modules/
dist/
.env
.env.local
.vscode/
.idea/
*.log
如果是前后端分离项目,可以综合写:
gitignore
# Java
target/
*.class
*.log
# Node
node_modules/
dist/
# IDE
.idea/
.vscode/
*.iml
# Env
.env
.env.local
# OS
.DS_Store
Thumbs.db
然后提交:
bash
git add .gitignore
git commit -m "添加Git忽略规则"
四、AI 编程 Agent 如何帮你做 Git 版本管理?
像 Codex、Claude Code、Cursor Agent、Copilot Agent 这类 AI 编程助手,一般可以帮助你:
text
初始化 Git 仓库
检查当前 Git 状态
创建 .gitignore
分析本次代码改动
帮你生成 commit message
执行 git add / git commit
创建分支
合并分支
查看历史版本
回退错误修改
但你要注意一点:
涉及删除、回退、强制覆盖、reset、clean 等危险操作时,不要让 AI 直接执行,应该让它先解释风险并征求确认。
尤其是这些命令:
bash
git reset --hard
git clean -fd
git checkout -- .
git restore .
这些命令可能会丢失未提交代码。
五、可以直接给 Codex 的 Prompt 模板
场景 1:让 AI 检查项目是否已有 Git 仓库
你可以输入:
text
请检查当前项目目录是否已经初始化为 Git 仓库。请先执行 git status 或等价命令,并告诉我当前仓库状态。不要修改任何文件。
AI 可能会执行:
bash
git status
然后告诉你是否已经是 Git 仓库。
场景 2:让 AI 初始化本地 Git 仓库
text
请在当前项目根目录初始化一个本地 Git 仓库。初始化前先检查当前目录是否已经存在 .git 仓库。如果不存在,再执行 git init。然后根据当前项目类型创建合适的 .gitignore 文件,但不要提交代码,先把你准备添加的 .gitignore 内容展示给我确认。
这个 prompt 比较安全,因为它要求 AI:
text
先检查
再初始化
先展示 .gitignore
不要直接提交
场景 3:让 AI 创建 .gitignore
如果你是 Spring Boot 项目:
text
这是一个 Java Spring Boot 后端项目。请帮我在项目根目录创建合适的 .gitignore 文件,忽略 target、IDE 配置文件、日志文件、系统临时文件和环境变量文件。创建后请解释每一类忽略规则的作用。
如果你是 Vue 项目:
text
这是一个 Vue 前端项目。请帮我创建合适的 .gitignore 文件,忽略 node_modules、dist、环境变量文件、IDE 配置文件和日志文件。创建后请解释这些规则的作用。
如果是前后端分离项目:
text
这是一个前后端分离项目,后端是 Spring Boot,前端是 Vue。请在项目根目录创建综合性的 .gitignore 文件,避免提交 target、node_modules、dist、IDE 配置、日志文件和环境变量文件。不要删除任何现有文件。
场景 4:让 AI 帮你提交当前版本
text
请先执行 git status,查看当前有哪些文件被修改、新增或删除。然后总结本次改动内容,并建议一个合适的中文 commit message。不要直接执行 git add 或 git commit,先等我确认。
确认后,你可以再说:
text
我确认,请将这些改动加入暂存区并提交,commit message 使用:完成用户登录功能基础实现
这样最安全。
场景 5:让 AI 自动完成 add + commit
如果你已经信任当前改动,可以直接说:
text
请查看当前 Git 状态,确认没有敏感文件、依赖目录或编译产物被错误纳入版本管理。然后执行 git add . 并提交,commit message 请根据本次代码改动自动生成,要求简洁、中文、动宾结构。
例如它可能生成:
text
添加用户登录页面
或者:
text
完善树形目录查询接口
场景 6:让 AI 每完成一个功能就自动提交
可以在一开始告诉 AI:
text
接下来你作为我的 AI 编程助手,在每完成一个相对独立的小功能后,请先执行 git status,总结本次改动,并建议是否进行一次 git commit。除非我明确确认,否则不要自动提交。commit message 使用中文,格式为"动词 + 功能点",例如"添加用户登录接口""修复目录树渲染问题"。
这个 prompt 很适合长期项目开发。
场景 7:让 AI 创建功能分支
比如你要开发登录模块:
text
请基于当前主分支创建一个新分支 feature-login,用于开发登录功能。创建前请先检查当前是否有未提交修改。如果有未提交修改,请先提醒我,不要直接切换分支。
如果是目录管理功能:
text
请创建一个新分支 feature-tree-management,用于开发树形目录管理功能。创建前请检查当前 Git 工作区是否干净。
场景 8:让 AI 对比本次代码改动
text
请执行 git diff,帮我审查当前未提交的代码改动。请重点检查:是否有明显 bug、是否误提交了配置文件或敏感信息、是否有不应该进入版本库的文件。不要修改代码,只做分析。
这个很有用,尤其适合提交前检查。
场景 9:让 AI 帮你生成规范 commit message
text
请根据当前 git diff 内容,帮我生成 3 个中文 commit message 候选,要求简洁、准确、动宾结构,不超过 20 个字。
例如:
text
添加用户登录接口
完善目录树查询逻辑
修复文件上传路径错误
场景 10:让 AI 回退错误改动,但先不要执行
text
我刚才的修改可能有问题。请先查看 git status 和 git diff,告诉我哪些文件被修改了,并说明如果要回退这些未提交修改,应该执行哪些命令。不要直接执行任何回退、删除或 reset 操作。
这个非常重要。回退类操作一定要谨慎。
六、推荐你给 AI Agent 的长期规则
你可以把下面这段作为项目开发初始 prompt 发给 Codex:
text
你是我的 AI 编程助手,请在本项目中遵守以下 Git 版本管理规则:
1. 在修改代码前,先执行 git status,了解当前工作区状态。
2. 不要随意执行 git reset --hard、git clean -fd、git restore . 等可能丢失代码的命令。
3. 如果需要执行危险 Git 操作,必须先解释风险并等待我确认。
4. 每完成一个独立功能或 bug 修复后,请总结本次改动,并建议一个中文 commit message。
5. 除非我明确要求,否则不要自动提交代码。
6. 提交前请检查是否误加入了 node_modules、target、dist、.env、日志文件或 IDE 缓存文件。
7. commit message 使用中文,格式尽量为"动词 + 功能点",例如"添加用户登录接口""修复文件上传异常"。
8. 如果当前项目尚未初始化 Git 仓库,请提醒我是否需要执行 git init,而不是直接初始化。
这段非常适合你目前这种"AI 辅助开发 + 本地 Git 管理"的场景。
七、一个实际推荐流程
比如你正在开发一个 Spring Boot + Vue 项目,可以这样操作:
第一次建立版本库
bash
git init
创建 .gitignore 后:
bash
git add .
git commit -m "初始化项目结构"
开发一个新功能前
bash
git status
确认工作区干净后,创建分支:
bash
git checkout -b feature-login
开发过程中
让 AI 写代码、修改代码。
完成后检查:
bash
git status
git diff
确认没问题后:
bash
git add .
git commit -m "添加用户登录功能"
功能完成后合并到主分支
bash
git checkout main
git merge feature-login
八、对你最实用的一套命令
你刚开始只需要记住这些:
bash
git init
git status
git add .
git commit -m "提交说明"
git log --oneline
git diff
进阶一点再掌握:
bash
git branch
git checkout -b 分支名
git checkout main
git merge 分支名
git restore 文件名
九、结论
你可以这样理解:
text
Git = 本地版本管理工具
GitHub/Gitee = 远程代码托管平台
Codex/AI Agent = 帮你写代码、分析改动、执行 Git 命令的助手
在 Windows 上,即使完全不使用 GitHub,也可以通过 Git 实现:
text
本地版本保存
代码修改记录
错误回退
分支开发
功能合并
提交历史查看
对于 AI 辅助编程,我建议你的核心原则是:
text
让 AI 写代码可以积极一点;
让 AI 执行 Git 删除、回退、重置操作一定要保守一点。
你可以先从这个 prompt 开始用:
text
请先检查当前项目的 Git 状态,告诉我是否已经初始化 Git 仓库。如果已经初始化,请总结当前工作区是否有未提交修改;如果还没有初始化,请告诉我下一步应该如何安全地初始化本地 Git 仓库。不要修改任何文件。