版本控制
Perforce 集成

版本控制集成

Unity 可集成 PerforcePlastic SCM 等版本控制系统。请参阅这些页面了解所选择的版本控制系统的具体信息。

使用版本控制系统可以更方便用户(或多个用户)管理其代码。此系统用于存储文件并管理它们的访问权限。就 Unity 而言,包括与 Unity 项目相关的所有文件。通过使用版本控制,可以跟踪对源代码的所有更改,还可了解更改人员、更改原因以及更改内容的信息。这样可以轻松恢复到早期版本的代码,或者比较版本之间的差异。而且,更容易找出错误最初发生的时间,以及是什么更改可能导致了该错误。

在 Unity 中设置版本控制

根据版本控制软件的说明来设置该软件,然后按照以下步骤操作:

1.使用所选客户端在计算机上设置或同步工作空间(请参阅 Plastic SCM 集成指南Perforce 集成指南以获取此步骤的帮助)。 1.将现有项目复制到工作空间,或启动 Unity 并在工作空间中创建新项目。 1. Open the project and go to Edit > Project Settings, then select the Editor category. 1.在 Version Control 下,根据所选的版本控制系统选择__模式 (Mode)__。

1.填写版本控制设置,例如用户名/密码/服务器/工作空间。 1.如果希望文件在添加到项目(或磁盘上的文件夹)时自动添加到版本控制系统,请保持 Automatic add 为选中状态。否则,需要手动添加新文件。 1.可以选择脱机工作。仅当了解如何将更改手动集成到版本控制软件中时,才建议使用此模式(脱机使用 Perforce)。 1.根据工作团队的偏好和选择的版本控制系统,可以编辑 Asset SerializationDefault Behaviour ModeSprite Packer 选项。 1.单击 Connect 并确认片刻后在 Connect 按钮上方显示“Connected”。 1.使用标准客户端(例如 p4v)确保添加 AssetsProjectSettings 文件夹中的所有文件(包括以 .meta 结尾的文件)。

注意:随时都可以转到 Prefences 菜单并选择 __External Tools__,然后调整 Revision Control Diff/Merge 工具。

使用版本控制系统

就目前而言,您应该能够通过右键单击 Project 视图中的资源(而不是通过版本控制客户端)来直接执行大多数重要的版本控制操作。版本控制操作取决于所选择的版本控制系统,下表显示了每个版本控制系统中可直接使用的操作:

版本控制操作 描述 Perforce Plastic SCM
签出 (Check Out) 允许对文件进行更改
与 HEAD 的差异 (Diff against head) 比较本地文件和 HEAD 中的文件之间的差异
获取最新 (Get Latest) 拉取最新更改并更新文件 否*
锁定 (Lock) 阻止其他用户对文件进行更改 否**
标记添加 (Mark Add) 在本地添加但不添加到版本控制系统
解决冲突 (Resolve Conflicts) 解决已被多个用户更改的文件的冲突 否***
还原 (Revert) 放弃对打开的已更改文件所做的更改
还原未更改内容 (Revert Unchanged) 放弃对打开的未更改文件所做的更改
提交 (Submit) 将文件当前状态提交给版本控制系统
解锁 (Unlock) 解锁并允许任何人进行更改 否**

* 要使用 Plastic SCM 获取最新更改并更新文件,需要使用版本控制窗口。

** 使用 Plastic SCM 来锁定和解锁需要您在外部编辑特定的 Plastic SCM 锁定文件,请参阅 Plastic SCM 集成页面以了解更多信息。

*** 冲突会显示在版本控制菜单中,但需要在 Plastic SCM GUI 中解决。

Mac 上的 Plastic SCM 版本控制操作
Mac 上的 Plastic SCM 版本控制操作
Windows 上的 Perforce 版本控制操作
Windows 上的 Perforce 版本控制操作

版本控制窗口

You can overview the files in your changelist from the Version Control Window (Window > Asset Management > Version Control). It is shown here docked next to Inspector in the editor:

“Outgoing”选项卡列出等待提交到版本控制系统的所有本地更改,而“Incoming”选项卡列出需要从版本控制系统中拉取的所有更改。

通过右键单击此窗口中的资源或变更列表,可以对它们执行操作。要在变更列表之间移动资源,只需将资源从一个变更列表拖动到目标变更列表的标题上。

图标

Unity Editor 中会显示以下图标,从而显示文件/资源的版本控制状态:

图标 含义 其他信息
已在本地添加文件 等待添加到版本控制系统
文件由另一个用户添加到版本控制系统 等待添加到版本控制系统
文件已被您签出 已在本地签出
文件已被另一个用户签出 已远程签出
合并此文件时存在冲突 需要解决冲突
文件已被您删除 等待版本控制系统中删除
文件已被另一个用户删除 等待版本控制系统中删除
文件尚未受版本控制
文件已被您锁定 其他用户无法修改
文件已被另一个用户锁定 您无法修改
另一个用户已签入此文件的新版本 使用“Apply Incoming Changes”获取最新版本
服务器正在请求此文件的版本控制状态,或正在等待响应 只有在使用 Perforce 等集中式版本控制系统时才会看到此图标

注意事项:

  • 有些版本控制系统在资源标记为 Checked out 之前不允许编辑资源(除非已选中 __Work offline__)。
  • 保存对 .scene 文件的更改时,将自动签出。
  • Project Settings Inspector 的右下角有一个 checkout 按钮可用于签出设置。
  • 通常会出现黄色警告,提醒将项签出以便对其进行更改,主要出现在 Project Settings Inspector 中。
  • 在 Plastic SCM 中会自动添加/签出自动生成的资源(例如光照贴图)。

在提交时自动还原未更改的文件

处理资源时,Unity 会自动签出资源文件以及相关的 .meta 文件。但是,在大多数情况下,不会修改 .meta 文件,这可能会导致一些额外的工作,例如在稍后合并分支时。

脱机模式

Unity 支持在脱机模式下工作,例如,在没有网络连接到版本控制库的情况下继续工作。

  • 如果希望能够与版本控制系统断开连接,请从 Version Control Settings 中选择 Work offline

允许异步更新

Unity 支持某些版本控制提供程序(如 Perforce)的异步版本控制状态查询。此选项允许这些提供程序更新文件的版本控制状态,而不会使 Unity 卡顿。当与版本控制服务器的连接存在高延迟时,请使用此选项。

  • 如果在状态查询期间遇到卡顿问题,请转到 Version Control Settings 并选择 Allow Async Update

注意:只有状态查询才是异步的。更改文件状态或需要了解最新文件状态的操作则是同步执行的。

故障排除

如果 Unity 无法将更改提交到版本控制客户端(例如,如果服务器关闭或发生许可证问题),这些更改将存储于单独的变更集。

使用 Asset Server

要了解有关使用 Asset Server(Unity 的内部版本控制系统)的更多信息,请参阅关于 Asset Server的文档。

使用其他版本控制系统

To work with a version control system unsupported by Unity, select MetaData as the Mode for Version Control in the Editor window. This allows you to manage the source Assets and metadata for those Assets with a version control system of your choice. For more on this, see documentation on External Version Control Systems.


  • 2017–02–12 Page amended with limited editorial review

  • 在 Unity 2017.3 中添加了关于异步版本控制状态查询的文档。

版本控制
Perforce 集成