【框架】从零搭建 Git + GitHub 版本管理

174 阅读4分钟

【实操笔记】从零搭建 Git + GitHub 版本管理,用于管理 Unreal 插件和 Python 脚本

经常需要开发 UE 插件、Blender 插件、Python 脚本。没有版本控制,代码一旦多起来就很容易混乱。于是我实践了一次:把 UE 插件放到 GitHub,全程使用 Git Bash 操作,完成了版本管理和远程同步。


一、环境准备

  1. 安装 Git

    • Windows 下载:Git 官网
    • 安装时保持默认选项,勾选 Git Bash Here
  2. 注册 GitHub 账号

    • GitHub
    • 如果主要做私有仓库,也可以用 GitLab。
  3. 配置 Git 用户信息
    打开 Git Bash,输入:

    git config --global user.name "你的名字"
    git config --global user.email "你的邮箱"
    

    邮箱最好和 GitHub 注册时一致。

image.png


二、初始化本地仓库

假设我的插件路径在:

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

image.png

初始化 Git:

git init

此时目录下会自动生成一个隐藏的 .git 文件夹(Git 仓库的核心数据)。

image.png

image.png


三、配置忽略文件

手动创建 .gitignore 文件(避免提交无关缓存文件):

# Unreal Engine
Binaries/
DerivedDataCache/
Intermediate/
Saved/
.vs/
*.VC.db
*.suo
*.pdb

# Python
__pycache__/
*.pyc
*.pyo
.venv/

保存到插件根目录。

image.png

🔹 验证 .gitignore 是否生效

在 Git Bash 输入:

git status

【此时我的反馈报错】

c2036154-7662-4237-93e1-6bed591a8046.png 这是 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

此时就成功了,会显示

b7334ef6-1ed4-4601-ac94-8c5828a4d0ea.png

git status 输出来看,Git 已经正确检测到了插件目录里的文件:

  • .gitignore
  • Content/
  • EditorExtendPlugins.uplugin
  • Resources/
  • Source/

四、第一次提交

将文件加入暂存区并提交:

git add .
git commit -m "Initial commit: UE EditorExtendPlugins 插件"

image.png


五、连接 GitHub

  1. 打开 GitHub → New Repository → 输入仓库名 EditorExtendPlugins → 保持空仓库(不要勾选 README)。

image.png

  1. 得到远程地址,例如:

    https://github.com/aozsh/EditorExtendPlugins.git
    
  2. 在本地仓库绑定远程地址:

    git remote add origin https://github.com/aozsh/EditorExtendPlugins.git
    git branch -M main
    git push -u origin main
    

image.png 如果成功,会看到类似提示:

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,随时回溯历史。


七、常见问题与解决

  1. 换行符警告

    LF will be replaced by CRLF
    

    这是 Windows 和 Linux 换行符差异,不影响使用。可忽略,或配置:

    git config --global core.autocrlf true
    
  2. 安全目录报错

    fatal: detected dubious ownership
    

    解决:

    git config --global --add safe.directory F:/AAA_UE_project/5.6/Project_5_6_CPP/Plugins/EditorExtendPlugins
    
  3. 远程仓库 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

立刻补上。