【实操笔记】从零搭建 Git + GitHub 版本管理,用于管理 Unreal 插件和 Python 脚本
经常需要开发 UE 插件、Blender 插件、Python 脚本。没有版本控制,代码一旦多起来就很容易混乱。于是我实践了一次:把 UE 插件放到 GitHub,全程使用 Git Bash 操作,完成了版本管理和远程同步。
一、环境准备
-
安装 Git
- Windows 下载:Git 官网
- 安装时保持默认选项,勾选 Git Bash Here。
-
注册 GitHub 账号
- GitHub
- 如果主要做私有仓库,也可以用 GitLab。
-
配置 Git 用户信息
打开 Git Bash,输入:git config --global user.name "你的名字" git config --global user.email "你的邮箱"邮箱最好和 GitHub 注册时一致。
二、初始化本地仓库
假设我的插件路径在:
F:\AAA_UE_project\5.6\Project_5_6_CPP\Plugins\EditorExtendPlugins
进入目录:
cd /f/AAA_UE_project/5.6/Project_5_6_CPP/Plugins/EditorExtendPlugins
初始化 Git:
git init
此时目录下会自动生成一个隐藏的 .git 文件夹(Git 仓库的核心数据)。
三、配置忽略文件
手动创建 .gitignore 文件(避免提交无关缓存文件):
# Unreal Engine
Binaries/
DerivedDataCache/
Intermediate/
Saved/
.vs/
*.VC.db
*.suo
*.pdb
# Python
__pycache__/
*.pyc
*.pyo
.venv/
保存到插件根目录。
🔹 验证 .gitignore 是否生效
在 Git Bash 输入:
git status
【此时我的反馈报错】
这是 Git 的安全保护在作怪(detected dubious ownership)。通常发生在:U 盘/移动硬盘/网络盘、或 Git 无法确认当前用户对这个目录的“拥有者”信息时。
按提示把这个仓库标记为“安全目录”即可。
在 Git Bash 里直接执行(注意用正斜杠 /):
git config --global --add safe.directory F:/AAA_UE_project/5.6/Project_5_6_CPP/Plugins/EditorExtendPlugins
此时就成功了,会显示
从 git status 输出来看,Git 已经正确检测到了插件目录里的文件:
.gitignoreContent/EditorExtendPlugins.upluginResources/Source/
四、第一次提交
将文件加入暂存区并提交:
git add .
git commit -m "Initial commit: UE EditorExtendPlugins 插件"
五、连接 GitHub
- 打开 GitHub → New Repository → 输入仓库名
EditorExtendPlugins→ 保持空仓库(不要勾选 README)。
-
得到远程地址,例如:
https://github.com/aozsh/EditorExtendPlugins.git -
在本地仓库绑定远程地址:
git remote add origin https://github.com/aozsh/EditorExtendPlugins.git git branch -M main git push -u origin main
如果成功,会看到类似提示:
Enumerating objects: 23, done.
Writing objects: 100% (23/23), done.
branch 'main' set up to track 'origin/main'.
此时代码已经上传到 GitHub。【大功告成】
六、后续更新工作流
以后每次开发插件,只需要三步:
git add .
git commit -m "更新了XX功能"
git push
即可把本地改动推送到 GitHub,随时回溯历史。
七、常见问题与解决
-
换行符警告
LF will be replaced by CRLF这是 Windows 和 Linux 换行符差异,不影响使用。可忽略,或配置:
git config --global core.autocrlf true -
安全目录报错
fatal: detected dubious ownership解决:
git config --global --add safe.directory F:/AAA_UE_project/5.6/Project_5_6_CPP/Plugins/EditorExtendPlugins -
远程仓库 not found
检查远程地址是否正确(通常格式是https://github.com/用户名/仓库名.git)。
八、额外优化:一键提交脚本
在插件目录下新建 push.bat:
@echo off
set /p MSG=Commit message (默认: update):
if "%MSG%"=="" set MSG=update
git add .
git commit -m "%MSG%"
git push -u origin main
pause
以后双击运行,只需输入提交信息即可完成 add → commit → push。
【251230更新】
今天我向github上传我的虚幻引擎工程,遇到一些坑,记录一下
坑1:命令中少写空格或者多写空格。
git add .add和.之间有空格git commit -m"创建工程,设置目录"m后面没有空格git lfs track "*.uasset" "*.umap"track空格“.uasset” 空格 “.umap”
坑2:.gitignore文件不要包含 UE 的垃圾目录,内容太多,push会失败。
- Saved/
- Intermediate/
- DerivedDataCache/
- Binaries/
坑3:Git LFS 接管 .uasset / .umap
- 这些 UE 的二进制资源不能用普通 Git 存,用 Git LFS 专门的二进制大文件系统存。
- Git 本体只存指针文件(几十字节)
- 真正的资源通过 LFS 通道单独上传/下载
这是 UE 项目 能长期健康使用 Git 的分水岭配置。
下次提交注意事项:
❗ 1.以后每一轮开发,只用记住 这 5 行黄金命令:
git status
git add .
git commit -m "本次改动说明"
git push
❗ 2. 永远不要手动 add Saved / Intermediate
如果哪天你 git status 里又看到这些目录,
说明 .gitignore 被你误删了 —— 立刻停手。
❗ 3. .uasset/.umap 永远走 LFS
如果哪天 git lfs track 里没有这两行:
*.uasset
*.umap
立刻补上。