docs: 添加 UE5.7 项目 Git 配置与开发规范
- 优化 .gitignore 为 UE5.7 专用版本(新增 Rider/VSCode/日志/崩溃/系统文件等) - 添加 .gitattributes 配置二进制资产处理与 Git LFS 追踪 - 添加 docs/GIT-GUIDE.md 分支策略与提交规范文档 - 添加 .claude/settings.json 项目级权限配置 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(dir:*)",
|
||||||
|
"Bash(git:*)",
|
||||||
|
"mcp__web-reader__webReader",
|
||||||
|
"mcp__zread__get_repo_structure",
|
||||||
|
"mcp__web-search-prime__webSearchPrime",
|
||||||
|
"WebSearch"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# UE5 Git Attributes - ChildHood Project
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 二进制资产(禁止文本合并,避免损坏)
|
||||||
|
# ==============================
|
||||||
|
*.uasset binary
|
||||||
|
*.umap binary
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# Git LFS 大文件追踪
|
||||||
|
# ==============================
|
||||||
|
*.uasset filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.umap filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 美术资源
|
||||||
|
# ==============================
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 3D 模型
|
||||||
|
# ==============================
|
||||||
|
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gltf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.glb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 音频
|
||||||
|
# ==============================
|
||||||
|
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.flac filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 视频
|
||||||
|
# ==============================
|
||||||
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wmv filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 文本 / 代码(正常 diff)
|
||||||
|
# ==============================
|
||||||
|
*.cpp text
|
||||||
|
*.h text
|
||||||
|
*.cs text
|
||||||
|
*.json text
|
||||||
|
*.ini text
|
||||||
|
*.cfg text
|
||||||
|
*.md text
|
||||||
|
*.txt text
|
||||||
|
*.uproject text
|
||||||
|
*.uplugin text
|
||||||
|
*.Build.cs text
|
||||||
|
*.Target.cs text
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 自动换行(Windows 开发环境)
|
||||||
|
# ==============================
|
||||||
|
* text=auto
|
||||||
+85
-62
@@ -1,40 +1,11 @@
|
|||||||
# ---> UnrealEngine
|
# ==============================
|
||||||
# Visual Studio 2015 user specific files
|
# ChildHood - UE5.7 Git Ignore
|
||||||
|
# ==============================
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# Visual Studio
|
||||||
|
# ==============================
|
||||||
.vs/
|
.vs/
|
||||||
|
|
||||||
# Compiled Object files
|
|
||||||
*.slo
|
|
||||||
*.lo
|
|
||||||
*.o
|
|
||||||
*.obj
|
|
||||||
|
|
||||||
# Precompiled Headers
|
|
||||||
*.gch
|
|
||||||
*.pch
|
|
||||||
|
|
||||||
# Compiled Dynamic libraries
|
|
||||||
*.so
|
|
||||||
*.dylib
|
|
||||||
*.dll
|
|
||||||
|
|
||||||
# Fortran module files
|
|
||||||
*.mod
|
|
||||||
|
|
||||||
# Compiled Static libraries
|
|
||||||
*.lai
|
|
||||||
*.la
|
|
||||||
*.a
|
|
||||||
*.lib
|
|
||||||
|
|
||||||
# Executables
|
|
||||||
*.exe
|
|
||||||
*.out
|
|
||||||
*.app
|
|
||||||
*.ipa
|
|
||||||
|
|
||||||
# These project files can be generated by the engine
|
|
||||||
*.xcodeproj
|
|
||||||
*.xcworkspace
|
|
||||||
*.sln
|
*.sln
|
||||||
*.suo
|
*.suo
|
||||||
*.opensdf
|
*.opensdf
|
||||||
@@ -42,35 +13,87 @@
|
|||||||
*.VC.db
|
*.VC.db
|
||||||
*.VC.opendb
|
*.VC.opendb
|
||||||
|
|
||||||
# Precompiled Assets
|
# ==============================
|
||||||
|
# JetBrains Rider
|
||||||
|
# ==============================
|
||||||
|
.idea/
|
||||||
|
*.csproj
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# VS Code
|
||||||
|
# ==============================
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 编译产物
|
||||||
|
# ==============================
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.gch
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.lib
|
||||||
|
*.a
|
||||||
|
*.pdb
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.ipa
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# UE5 引擎生成目录
|
||||||
|
# ==============================
|
||||||
|
Binaries/
|
||||||
|
Intermediate/
|
||||||
|
DerivedDataCache/
|
||||||
|
Saved/
|
||||||
|
Build/
|
||||||
|
Staging/
|
||||||
|
Script/
|
||||||
|
|
||||||
|
# 插件内的编译产物
|
||||||
|
Plugins/**/Binaries/
|
||||||
|
Plugins/**/Intermediate/
|
||||||
|
|
||||||
|
# 保留 Build 中的图标和 PakBlacklist
|
||||||
|
!Build/**/*.ico
|
||||||
|
!Build/*/PakBlacklist*.txt
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# UE5 烘焙数据
|
||||||
|
# ==============================
|
||||||
|
*_BuiltData.uasset
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 预编译资源源文件
|
||||||
|
# ==============================
|
||||||
SourceArt/**/*.png
|
SourceArt/**/*.png
|
||||||
SourceArt/**/*.tga
|
SourceArt/**/*.tga
|
||||||
|
|
||||||
# Binary Files
|
# ==============================
|
||||||
Binaries/*
|
# 日志与崩溃报告
|
||||||
Plugins/**/Binaries/*
|
# ==============================
|
||||||
|
*.log
|
||||||
|
CrashReportClient/
|
||||||
|
|
||||||
# Builds
|
# ==============================
|
||||||
Build/*
|
# 系统文件
|
||||||
|
# ==============================
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
*.lnk
|
||||||
|
|
||||||
# Whitelist PakBlacklist-<BuildConfiguration>.txt files
|
# ==============================
|
||||||
!Build/*/
|
# Git LFS 临时文件
|
||||||
Build/*/**
|
# ==============================
|
||||||
!Build/*/PakBlacklist*.txt
|
*.lfs
|
||||||
|
|
||||||
# Don't ignore icon files in Build
|
|
||||||
!Build/**/*.ico
|
|
||||||
|
|
||||||
# Built data for maps
|
|
||||||
*_BuiltData.uasset
|
|
||||||
|
|
||||||
# Configuration files generated by the Editor
|
|
||||||
Saved/*
|
|
||||||
|
|
||||||
# Compiled source files for the engine to use
|
|
||||||
Intermediate/*
|
|
||||||
Plugins/**/Intermediate/*
|
|
||||||
|
|
||||||
# Cache files for the editor to use
|
|
||||||
DerivedDataCache/*
|
|
||||||
|
|
||||||
|
# ==============================
|
||||||
|
# 其他
|
||||||
|
# ==============================
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|||||||
@@ -0,0 +1,233 @@
|
|||||||
|
# ChildHood - Git 规范
|
||||||
|
|
||||||
|
> 本文档规定 ChildHood 项目的 Git 分支策略和提交规范。
|
||||||
|
> 适用场景:单人独立开发 + UE5.7.4
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、分支策略
|
||||||
|
|
||||||
|
采用**轻量级 Feature Branch 模型**,避免企业级复杂流程,保持 `main` 分支随时可玩。
|
||||||
|
|
||||||
|
### 1.1 分支总览
|
||||||
|
|
||||||
|
```
|
||||||
|
main ──────────────────────────────────────── 稳定主线
|
||||||
|
│
|
||||||
|
├── feature/player-movement ───→ 合并后删除
|
||||||
|
├── feature/inventory-system ──→ 合并后删除
|
||||||
|
├── fix/camera-clipping ───────→ 合并后删除
|
||||||
|
├── prototype/procedural-gen ──→ 实验完即删
|
||||||
|
└── release/v0.1 ──────────────→ 永久保留
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.2 分支类型
|
||||||
|
|
||||||
|
| 分支 | 前缀 | 用途 | 合并目标 | 生命周期 |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| 主线 | `main` | 稳定可玩版本,每次提交都能编译运行 | — | 永久 |
|
||||||
|
| 功能 | `feature/` | 新系统、新功能开发 | `main` | 完成后删除 |
|
||||||
|
| 修复 | `fix/` | Bug 修复 | `main` | 完成后删除 |
|
||||||
|
| 原型 | `prototype/` | 技术验证、玩法实验 | 合并或丢弃 | 实验完即删 |
|
||||||
|
| 发布 | `release/` | 版本发布标记,只从 `main` 切出 | — | 永久保留 |
|
||||||
|
|
||||||
|
### 1.3 命名规范
|
||||||
|
|
||||||
|
格式:`<类型>/<简短描述>`,全小写,用连字符分隔单词。
|
||||||
|
|
||||||
|
```
|
||||||
|
# ✅ 好的命名
|
||||||
|
feature/player-movement
|
||||||
|
feature/inventory-system
|
||||||
|
feature/dialogue-tree
|
||||||
|
fix/camera-clipping-through-walls
|
||||||
|
fix/enemy-ai-stuck-on-navmesh
|
||||||
|
prototype/procedural-dungeon
|
||||||
|
release/v0.1
|
||||||
|
|
||||||
|
# ❌ 不好的命名
|
||||||
|
my-new-feature
|
||||||
|
fix-bug
|
||||||
|
test
|
||||||
|
feature/AddPlayerMovement
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.4 工作流程
|
||||||
|
|
||||||
|
```
|
||||||
|
1. 开始新功能
|
||||||
|
git checkout main
|
||||||
|
git pull
|
||||||
|
git checkout -b feature/xxx
|
||||||
|
|
||||||
|
2. 开发过程中(随时提交)
|
||||||
|
git add .
|
||||||
|
git commit -m "wip(xxx): 进度描述"
|
||||||
|
|
||||||
|
3. 功能完成,测试通过
|
||||||
|
git checkout main
|
||||||
|
git merge feature/xxx
|
||||||
|
git branch -d feature/xxx # 删除已合并分支
|
||||||
|
|
||||||
|
4. 到达里程碑
|
||||||
|
git checkout main
|
||||||
|
git tag -a v0.1.0 -m "第一个可玩原型"
|
||||||
|
git checkout -b release/v0.1
|
||||||
|
git push origin release/v0.1
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.5 核心原则
|
||||||
|
|
||||||
|
- **`main` 永远可玩**:坏了就留在 feature 分支继续改,不要合并进 main
|
||||||
|
- **功能分支粒度**:一个分支做一件事,不要在一个分支里同时做多个系统
|
||||||
|
- **原型不怕乱**:`prototype/` 分支随便写,验证完再决定合并还是丢弃
|
||||||
|
- **定期清理**:已合并的 feature/fix 分支及时删除,避免分支堆积
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、提交规范
|
||||||
|
|
||||||
|
### 2.1 提交消息格式
|
||||||
|
|
||||||
|
```
|
||||||
|
<type>(<scope>): <subject>
|
||||||
|
|
||||||
|
<body>(可选,多行说明)
|
||||||
|
```
|
||||||
|
|
||||||
|
- **subject**:不超过 50 个字符,简明扼要
|
||||||
|
- **body**:每行不超过 72 个字符,解释"做了什么"和"为什么"
|
||||||
|
- 使用中文描述,技术术语保留英文
|
||||||
|
|
||||||
|
### 2.2 Type 类型标签
|
||||||
|
|
||||||
|
| Type | 含义 | 使用场景 |
|
||||||
|
|---|---|---|
|
||||||
|
| `feat` | 新功能 | 新增系统、机制、玩法 |
|
||||||
|
| `fix` | Bug 修复 | 修复已知问题 |
|
||||||
|
| `art` | 美术资源 | 模型、贴图、材质、动画导入 |
|
||||||
|
| `level` | 关卡/场景 | 关卡搭建、场景编辑 |
|
||||||
|
| `audio` | 音效/音乐 | BGM、SFX、语音导入 |
|
||||||
|
| `bp` | 蓝图逻辑 | 蓝图节点修改、逻辑调整 |
|
||||||
|
| `refactor` | 重构 | 不改变功能的结构优化 |
|
||||||
|
| `config` | 项目配置 | 引擎设置、插件配置、项目参数 |
|
||||||
|
| `docs` | 文档 | README、设计文档、注释 |
|
||||||
|
| `wip` | 进行中 | 未完成的工作进度保存 |
|
||||||
|
|
||||||
|
### 2.3 Scope 范围标签(可选)
|
||||||
|
|
||||||
|
按游戏系统或模块划分:
|
||||||
|
|
||||||
|
```
|
||||||
|
player 玩家角色
|
||||||
|
enemy 敌人/AI
|
||||||
|
combat 战斗系统
|
||||||
|
ui UI 界面
|
||||||
|
camera 摄像机
|
||||||
|
inventory 背包/物品
|
||||||
|
dialogue 对话系统
|
||||||
|
quest 任务系统
|
||||||
|
save 存档系统
|
||||||
|
audio 音频系统
|
||||||
|
animation 动画系统
|
||||||
|
ai AI 行为树/状态机
|
||||||
|
level 关卡
|
||||||
|
vfx 视觉特效
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4 提交示例
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 新功能
|
||||||
|
git commit -m "feat(player): 实现角色跳跃和二段跳"
|
||||||
|
|
||||||
|
# 带 body 的详细提交
|
||||||
|
git commit -m "feat(combat): 实现基础连击系统
|
||||||
|
|
||||||
|
- 添加三段连击动画蒙太奇
|
||||||
|
- 实现动画通知触发伤害判定
|
||||||
|
- 连击窗口时间可配置"
|
||||||
|
|
||||||
|
# Bug 修复
|
||||||
|
git commit -m "fix(camera): 修复穿墙时摄像机卡顿问题"
|
||||||
|
|
||||||
|
# 美术资源
|
||||||
|
git commit -m "art(environment): 添加草地和树木模型"
|
||||||
|
|
||||||
|
# 蓝图修改
|
||||||
|
git commit -m "bp(enemy): 实现巡逻-追击-攻击状态机"
|
||||||
|
|
||||||
|
# 关卡搭建
|
||||||
|
git commit -m "level(chapter1): 第一章关卡白盒搭建完成"
|
||||||
|
|
||||||
|
# 进行中
|
||||||
|
git commit -m "wip(crafting): 合成系统UI初步框架"
|
||||||
|
|
||||||
|
# 项目配置
|
||||||
|
git commit -m "config: 启用Nanite和Lumen,设置画质预设"
|
||||||
|
|
||||||
|
# 重构
|
||||||
|
git commit -m "refactor(inventory): 拆分背包数据层与UI层"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.5 提交粒度建议
|
||||||
|
|
||||||
|
| 操作 | 粒度 |
|
||||||
|
|---|---|
|
||||||
|
| 蓝图逻辑 | 按功能点提交,不要一次提交多个系统 |
|
||||||
|
| 关卡编辑 | 按区域/房间提交 |
|
||||||
|
| 美术资源导入 | 按类型/角色分批提交 |
|
||||||
|
| C++ 代码 | 按逻辑单元提交 |
|
||||||
|
| 材质/贴图 | 按材质组提交 |
|
||||||
|
|
||||||
|
### 2.6 UE5 特别注意
|
||||||
|
|
||||||
|
- **蓝图与 C++ 分开提交**:避免同一提交中混合两者,方便出问题时 revert
|
||||||
|
- **二进制文件提交**:`.uasset`、`.umap` 无法 diff,commit message 要写清楚改了什么
|
||||||
|
- **不要提交以下目录**(已被 .gitignore 排除):
|
||||||
|
- `Binaries/`、`Intermediate/`、`Saved/`、`DerivedDataCache/`
|
||||||
|
- `.vs/`、`*.sln`(由引擎自动生成)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、版本号规范
|
||||||
|
|
||||||
|
采用简化语义化版本:
|
||||||
|
|
||||||
|
```
|
||||||
|
v主版本.次版本.修订号
|
||||||
|
|
||||||
|
v0.1.0 ← 第一个可玩原型
|
||||||
|
v0.2.0 ← 核心玩法成型
|
||||||
|
v0.3.0 ← 内容填充阶段
|
||||||
|
...
|
||||||
|
v1.0.0 ← 正式发布
|
||||||
|
```
|
||||||
|
|
||||||
|
- **主版本**:重大里程碑(原型、Alpha、正式版)
|
||||||
|
- **次版本**:新系统/大功能完成
|
||||||
|
- **修订号**:Bug 修复、小调整
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、常用命令速查
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看当前状态
|
||||||
|
git status
|
||||||
|
git log --oneline --graph --all
|
||||||
|
|
||||||
|
# 开始新功能
|
||||||
|
git checkout -b feature/xxx
|
||||||
|
|
||||||
|
# 暂存当前工作(需要临时切分支时)
|
||||||
|
git stash
|
||||||
|
git stash pop
|
||||||
|
|
||||||
|
# 撤销上次提交(保留修改)
|
||||||
|
git reset --soft HEAD~1
|
||||||
|
|
||||||
|
# 强制同步远程(仅限个人项目)
|
||||||
|
git fetch origin
|
||||||
|
git reset --hard origin/main
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user