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

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


当前回答

在使用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) *

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

其他回答

在使用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) *

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

我们现在有无缝集成到unity与Github到unity扩展… https://unity.github.com/

新的GitHub for Unity扩展带来了GitHub工作流和更多的Unity,提供支持大文件与Git LFS和文件锁定。

在撰写本文时,该项目仍处于alpha阶段,但仍可用于个人项目。

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

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

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

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

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

I suggest that you make a .gitignore file that includes everything other than the assets folder (all the other files that are originally inside a unity project). Next, you should place all your game projects in one folder. Next, duplicate the .gitignore in every single project folder for your games. This will exclude the libraries and unnecessary folders inside your projects other than the assets. If you have any projects you don't want, then put them in a new .gitignore inside where your game projects are stored. Note: You can have multiple .gitignore's and .gitignore is based on relative paths. I hope that helped!