设置Unity Smart Merge

时间:2016-02-01 21:39:12

标签: git unity3d

我一直在尝试将UnityYAMLMerge设置为与Windows 5.3中的Unity 5.3.1和Git的合并工具。

不幸的是我不确定如何让它发挥作用。以下是我根据我在这些链接上阅读的内容所做的事情: http://docs.unity3d.com/Manual/SmartMerge.html https://www.reddit.com/r/Unity3D/comments/39bdq5/how_to_solve_scene_conflicts_with_unitys_smart/

1)通过添加以下内容来设置.gitconfig(全局)和.git / config(本地项目):

[合并] tool = unityyamlmerge

[mergetool“unityyamlmerge”] trustExitCode = false cmd ='C:\ Program Files \ Unity \ Editor \ Data \ Tools \ UnityYAMLMerge.exe merge'-p“$ BASE”“$ REMOTE”“$ LOCAL”“$ MERGED”

2)已安装Perforce P4V并添加了合并应用程序

3)设置mergespecfile.txt修改未注释的行,使它们看起来像这样: 统一使用“C:\ Program Files \ Perforce \ p4merge.exe”“$ BASE”“$ LOCAL”“$ REMOTE”“$ MERGED” 预制件使用“C:\ Program Files \ Perforce \ p4merge.exe”“$ BASE”“$ LOCAL”“$ REMOTE”“$ MERGED”

我和我的队友编辑了一个场景,当我拉出更改(git bash)时,它只显示了典型的错误消息: 警告:无法合并二进制文件:Assets / Scenes / GameScene.unity(HEAD vs. 81d75fc59feed35563a24b8dd609fa29deb5ec46) 自动合并资产/场景/ GameScene.unity CONFLICT(内容):在Assets / Scenes / GameScene.unity中合并冲突 自动合并失败;修复冲突,然后提交结果。

我不确定我是否遗漏了什么。我希望有人可以帮助我们。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您已启用"强制文字"在Unity中的血清模式,你需要"团结"和"预制"文件没有被git自动合并。 因此,您需要将以下内容添加到.gitattributes

*.unity binary *.prefab binary

当你在git中合并一个分支时,git不会合并unity和prefab文件,只留下冲突的文件。 然后,您需要手动运行git mergetool以触发UnityYAMLMerge。这是非常重要的一步!

顺便说一下,你不需要在mercurial中运行任何东西,只需合并一个分支就会触发UnityYAMLMerge