在Unity 3D中使用Git源代码控制的最佳实践是什么,特别是在处理Unity 3D项目的二进制性质时?请描述工作流程,在.gitignore中包含哪些路径,应该在Unity和/或项目中设置什么设置,以及任何其他应该注意的特殊事情。

注意:我知道使用资产服务器是unity推荐的方式,但出于各种原因,我想使用Git。请不要回答,状态或争论,我应该只是使用资产服务器。资产服务器真的不是我的选择。


当前回答

只有Assets和ProjectSettings文件夹需要置于git版本控制之下。

你可以做一个这样的gitignore。

[Ll]ibrary/
[Tt]emp/
[Oo]bj/

# Autogenerated VS/MD solution and project files
*.csproj
*.unityproj
*.sln
*.suo
*.userprefs

# Mac
.DS_Store
*.swp
*.swo

Thumbs.db
Thumbs.db.meta

.vs/

其他回答

什么是GIT?

Git是一个免费的开源分布式版本控制系统(SCM),由Linus Torvalds于2005年(Linux操作系统的创始人)开发。它的创建是为了控制从小到大的项目的速度和效率。谷歌、Facebook、微软等领先公司每天都在使用GIT。

如果你想了解更多关于GIT的知识,请查看这个快速教程,

首先,确保已经设置好Git环境。您需要设置本地环境和Git存储库(我更喜欢Github.com)。

GIT客户端应用程序Mac/Windows

对于GIT gui客户端应用程序,我建议你去Github.com,

GitHub是一个可以与朋友、同事、同学和完全陌生的人分享代码的地方。超过500万人使用GitHub一起创建令人惊叹的东西。

Unity3d设置

你需要做这些设置

切换到“编辑→项目设置→编辑器→版本控制模式”中的“可见元文件”。

在Unity中启用外部选项→Preferences→Packages→Repository

在“编辑→项目设置→编辑器→资产序列化模式”中切换到“强制文本”。

来源: 使用Git与3D游戏源代码控制

在使用git进行unity-3d源代码版本控制时,需要记住的主要事情:

(A)不要签入图书馆文件夹。我在过去犯过很多次这样的错误,并为此付出了代价! 在将项目/文件添加到git之前,删除或移出库文件夹。

(B)使用“可见元文件”-对于最新的unity版本- 5.3.4及以上默认发生。对于一些早期版本,您需要更改下面的设置: 编辑->项目设置->版本控制

(C)为Unity使用.gitignore文件-以确保保持正常,并且不会不必要地添加文件-如果在android / tizen上-添加规则以排除APK和TPK文件添加到存储库。 或者使用GitHub提供的。gitignore for unity模型: https://github.com/github/gitignore/blob/master/Unity.gitignore

(D)确保.gitignore文件作为第一个添加的文件添加到存储库中——因为在过去我个人没有添加过。gitignore文件。事后有很多关于为什么会发生这种情况的想法-但现在我只是复制并添加.gitignore文件作为设置存储库的第一步。

所以…为git准备一个Unity项目,执行以下步骤:

(1)进入项目文件夹

(2)类型 Git初始化。

复制.gitignore文件: MacOS系统:cp ~/Downloads/.gitignore 在Windows下:复制c:\Users[yourusername]\Downloads。gitignore。

添加 .gitignore (4)

前往添加 (5) *

希望这对你有所帮助……祝你一切顺利!

你可以使用Github for Unity,这是一个Unity扩展,将git工作流带入Unity的UI中。

Github for Unity刚刚发布了扩展的1.0版本。

它使用git-lfs (git大文件支持)来正确存储大资产 文件锁定,这样其他人就不会覆盖您的资产提交 向/从任何远程存储库推送和拉取 你也可以在Unity资产商店下载:https://assetstore.unity.com/packages/tools/version-control/github-for-unity-118069

Unity还提供了自己的源代码版本控制。在unity5之前,它是unityAsset Server,但现在它贬值了。并推出新的SVN控制系统unity collaboration。但是使用unity和任何SVN的主要问题是提交和合并场景。但svn的Non为我们提供了解决这种冲突或合并场景的方法。所以取决于你熟悉哪个SVN。我在Mac上使用SmartSVN工具。在Windows上乌龟。

我强烈建议你切换到PlasticSCM。 这是Unity所迁移的内容,并提供了设计师和开发者工作流来管理游戏开发等复杂内容的版本控制。

3个用户可以免费获得云版。它取代了Unity的协作工具。

注意:我使用Git/Bitbucket和SourceTree来管理一个简单的项目真的很困难。

https://unity.com/products/plastic-scm