Unity和git

Tulenber 24 December, 2019 ⸱ Beginner ⸱ 3 min ⸱

1
2
# 所有你需要的是
git init
 般常识。

正如已经提到的 “版本控制,gamedev和git LFS” (这不是告诉您为什么需要版本控制),git初始化是一个项目在开始时可以做的最好的事情。

存储什么?

Unity项目喜欢生成许多元和缓存信息。最简单的方法是显示三个所需的文件夹:

  • Assets -包含所有项目资源。
  • Packages -包含用于维护依赖关系链接的清单文件。
  • ProjectSettings - 包含编辑器配置。

所有其他文件从这三个文件生成。

.gitignore

您可以使用 github/gitignore 作为模板,该模板用于在GitHub上创建新项目。
但是Unity并不是唯一一个使用此文件夹的应用程序。因此,您可以使用 gitignore.io 为以下组合生成文件:MacOs + Rider + Unity。

1
2
git add -A
git commit -m "初始提交."

Unity设置

Unity的设置很少,设置可能导致git中断项目。检查这两个参数Edit > Project Settings > Editor >  

  •  Version Control > Mode: “Visible Meta Files" -用于存储对象参考。
  •  Asset Serialization > Mode: “Force Text" -获取可合并的场景和预设。

UnityYAMLMerge

从理论上讲,Asset Serialization > “Force Text" 一定存在合并冲突的可能性,但是实际上,这是一个艰难的过程。如果有合并冲突, UnityYAMLMerge 工具必须提供帮助。让我们把它放在这里,有需要时可以回来。

git lfs

文章 “Version Control,gamedev和git lfs” 已经涵盖了有关git lfs的问题,例如为什么要使用它, 在哪里可以找到/学习它 以及所提供的服务。因此,让我们继续往下。

1
2
# 初始化git lfs
git lfs install
.gitattributes template:
 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# .gitattributes

# Images
*.ai filter=lfs diff=lfs merge=lfs -text
*.cubemap filter=lfs diff=lfs merge=lfs -text
*.bmp filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.iff filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.pict filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text
*.tiff filter=lfs diff=lfs merge=lfs -text
 
# Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.aiff filter=lfs diff=lfs merge=lfs -text
*.it filter=lfs diff=lfs merge=lfs -text
*.mod filter=lfs diff=lfs merge=lfs -text
*.s3m filter=lfs diff=lfs merge=lfs -text
*.xm filter=lfs diff=lfs merge=lfs -text
 
# Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
 
# 3D Objects
*.3dm filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.c4d filter=lfs diff=lfs merge=lfs -text
*.collada filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.dxf filter=lfs diff=lfs merge=lfs -text
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.jas filter=lfs diff=lfs merge=lfs -text
*.lws filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
*.ma filter=lfs diff=lfs merge=lfs -text
*.max filter=lfs diff=lfs merge=lfs -text
*.mb filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.ply filter=lfs diff=lfs merge=lfs -text
*.skp filter=lfs diff=lfs merge=lfs -text
*.stl filter=lfs diff=lfs merge=lfs -text
*.ztl filter=lfs diff=lfs merge=lfs -text
 
# Other
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text

注意:如果 .gitattributes 是手工填充的,则由git索引的文件仅在更改后才会移动到git lfs。所以,要立即移动某种类型的所有文件,可以使用此命令:

1
2
# Move all *.bin files to git lfs
git lfs track '*.bin'

结论

对于Unity,版本控制有一些特殊性,但是总的来说,没有什么重要的。如果您在签出合理项目时遇到麻烦,请检查帖子开头我们仅提到的那三个文件夹,并且确保所有文件夹都正常。好吧,这就是我们为新项目设置版本控制的全部内容。让我们一 起再来看看与Unity更多相关的内容。下次见!=)


如果您喜欢这篇文章,可以为它提供支持



Privacy policyCookie policyTerms of service
Tulenber 2020