Git 与 Unity 协同开发:从入门到精通

Git 与 Unity 协同开发:从入门到精通

掌握 Git 版本控制,让 Unity 项目开发更高效、更安全

为什么需要版本控制?

在 Unity 游戏开发中,版本控制是必不可少的:

  • 代码安全:防止误删、误改,随时可以回退
  • 团队协作:多人同时开发,自动合并代码
  • 历史追踪:清楚记录每次修改的内容和原因
  • 分支管理:并行开发新功能,互不干扰

一、初始化 Git 仓库

1.1 创建 .gitignore 文件

Unity 项目中有很多不应该上传的文件夹(自动生成、体积大),需要先配置 .gitignore

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Unity 生成文件夹(不上传)
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Bb]uilds/
[Ll]ogs/
[Uu]ser[Ss]ettings/

# IDE 相关(不上传)
.idea/
.vs/
.vscode/
*.csproj
*.sln
*.user
*.userprefs
*.suo

# 资源文件(可选,如果只想上传代码)
# Assets/**/*.png
# Assets/**/*.jpg
# Assets/**/*.fbx
# Assets/**/*.mp3

# 但保留 .meta 和代码(必须)
!Assets/**/*.meta
!Assets/**/*.cs

# OS 生成
.DS_Store
Thumbs.db

# 其他
*.tmp
*.log

1.2 初始化仓库

1
2
3
4
5
6
7
8
# 进入项目目录
cd F:\Unity\YourProject

# 初始化 Git
git init

# 添加远程仓库(替换为你的仓库地址)
git remote add origin git@github.com:你的用户名/仓库名.git

二、首次上传项目

2.1 添加并提交文件

1
2
3
4
5
6
7
8
9
# 进入项目目录
# 添加所有文件(.gitignore 会自动过滤)
git add .

# 查看将要提交的内容
git status

# 提交
git commit -m "初始化 Unity 项目"

2.2 推送到 GitHub

1
2
3
4
5
# 如果远程仓库是 main 分支
git push -u origin master:main

# 如果本地和远程分支名一致
git push -u origin main

三、日常操作:更新代码

3.1 提交代码改动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 如果远程仓库是 main 分支
# 1. 查看改动了哪些文件
git status

# 2. 添加改动的文件
# 添加单个文件
git add Assets/Scripts/Player.cs

# 添加所有改动
git add .

# 3. 提交(写清楚改了什么)
git commit -m "修复玩家移动卡顿问题"

# 4. 推送到远程
git push origin main

3.2 拉取最新代码

1
2
3
4
5
6
7
# 拉取远程最新代码
git pull origin main

# 如果有冲突,解决后:
git add .
git commit -m "解决合并冲突"
git push origin main

四、上传资源文件

4.1 上传 Resources 文件夹

1
2
3
4
5
6
7
8
9
10
11
# 添加 Resources 文件夹
git add Assets/Resources/

# 查看添加的文件
git status

# 提交
git commit -m "添加 Resources 资源文件"

# 推送
git push origin main

4.2 上传特定类型的文件

1
2
3
4
5
6
7
8
# 只上传图片
git add Assets/**/*.png Assets/**/*.jpg

# 只上传音频
git add Assets/**/*.mp3 Assets/**/*.wav

# 只上传预制体
git add Assets/**/*.prefab

五、版本回退

5.1 查看提交历史

1
2
3
4
5
6
7
# 查看提交记录
git log --oneline

# 显示:
# 添加 Resources 资源文件
# 添加 .gitignore
# 初始化 Unity 项目

5.2 回退到指定版本

1
2
3
4
5
6
7
8
# 回退到某个版本(保留改动)
git reset --soft 3fd5ded

# 回退到某个版本(丢弃所有改动)⚠️ 谨慎使用
git reset --hard 3fd5ded

# 回退到上一个版本
git reset --hard HEAD~1

5.3 撤销最近的提交(保留改动)

1
2
3
4
5
6
7
# 撤销最近一次提交,但保留文件改动
git reset --soft HEAD~1

# 重新提交
git add .
git commit -m "修正提交信息"
git push origin main --force

5.4 创建新版本回退

1
2
3
4
5
6
# 创建回退版本
git revert HEAD

# 会弹出编辑器,输入回退原因后保存
# 然后推送
git push origin main

六、分支管理

6.1 创建和切换分支

1
2
3
4
5
6
7
8
# 创建新分支
git branch feature/ui

# 切换到新分支
git checkout feature/ui

# 创建并切换(合并写法)
git checkout -b feature/ui

6.2 查看分支

1
2
3
4
5
# 查看本地分支
git branch

# 查看所有分支(含远程)
git branch -a

6.3 合并分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 先切回主分支
git checkout main

# 拉取最新代码
git pull origin main

# 合并功能分支
git merge feature/ui

# 推送到远程
git push origin main

# 删除已合并的分支
git branch -d feature/ui

七、解决冲突

7.1 冲突发生场景

当多人修改同一文件时,git pull 会提示冲突:

Auto-merging Assets/Scripts/Player.cs
CONFLICT (content): Merge conflict in Assets/Scripts/Player.cs

7.2 解决冲突步骤

  1. 打开冲突文件,找到标记:
1
2
3
4
5
<<<<<<< HEAD
int speed = 10; // 你的代码
=======
int speed = 15; // 远程代码
>>>>>>> origin/main
  1. 手动修改,保留正确代码,删除标记

  2. 提交解决后的文件:

1
2
3
git add Assets/Scripts/Player.cs
git commit -m "解决 Player.cs 冲突"
git push origin main

八、常用命令速查表

操作 命令
查看状态 git status
查看改动 git diff
添加所有改动 git add .
提交 git commit -m "说明"
推送 git push origin main
拉取 git pull origin main
查看历史 git log --oneline
回退版本 git reset --hard 版本号
创建分支 git checkout -b 分支名
合并分支 git merge 分支名

九、注意事项

🛩️应该上传的文件

  • Assets/ 下的所有 .cs 脚本

  • Assets/ 下的所有 .meta 文件(必须)

  • ProjectSettings/ 整个文件夹

  • Packages/ 整个文件夹

  • .gitignore 文件

💢不应该上传的文件

  • Library/ - Unity 自动生成

  • Temp/ - 临时文件

  • obj/ - 编译中间文件

  • Builds/ - 打包输出

  • Logs/ - 日志文件

  • UserSettings/ - 用户偏好设置

十、常见问题

  • Q1:忘记添加 .gitignore 就推送了怎么办?

1
2
3
4
5
6
7
8
9
# 创建 .gitignore
# 从 Git 缓存中移除大文件夹
git rm -r --cached Library/
git rm -r --cached Temp/

# 重新添加并推送
git add .
git commit -m "添加 .gitignore,移除大文件"
git push origin main --force
  • Q2:推送时提示 “pack exceeds maximum allowed size”

说明仓库超过 2GB,需要:

  1. 添加 .gitignore 忽略大文件夹
  2. 删除历史中的大文件(用 BFG 工具)
  3. 或重新初始化仓库
  • Q3:.meta 文件需要上传吗?

必须上传! .meta 文件存储了资源的唯一 ID 和引用关系,不上传会导致资源引用丢失。

结语

掌握 Git 是 Unity 开发者的必备技能。本文涵盖了日常开发中最常用的操作,从初始化到分支管理,从提交代码到版本回退。

记住核心流程:

修改代码 → git add → git commit → git push

多练习几次,就能形成肌肉记忆。游戏开发之路顺顺利利!


Git 与 Unity 协同开发:从入门到精通
https://zeng-ss.github.io/zeng.github.io/2026/03/30/gitHub-使用方法/
作者
Zeng
发布于
2026年3月30日
更新于
2026年4月5日
许可协议