问题

问题

问题

我正在使用 GitLab 对 Unity 项目进行版本控制。我正在尝试设置 git,以便它使用不同的工具来合并根据文件扩展名。我希望 git 使用 WinMerge,因为它合并工具适用于除我想使用 SmartMerge 的文件之外的所有文件。我不希望 git 尝试自动合并我想使用 SmartMerge 的文件。不确定这是否可行。

解决方案尝试

我已将以下内容添加到本地 .git 文件夹中的配置文件中以进行设置git 合并

[merge]
    tool = unityyamlmerge

[mergetool "unityyamlmerge"]
    trustExitCode = false
    cmd = '<path to UnityYAMLMerge>' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED"
[merge]
    tool = winmerge

[mergetool "winmerge"]
    name = WinMerge
    trustExitCode = true
    cmd = '<path to WinMerge>' -u -e -dl \"Local\" -dr \"Remote\" $LOCAL $REMOTE $MERGED

并且我在我的 repo 顶层的 .attributes 文件中添加了以下内容来指定使用 SmartMerge 的文件类型:

# Unity YAML
*.mat merge=unityyamlmerge eol=lf
*.anim merge=unityyamlmerge eol=lf
*.unity merge=unityyamlmerge eol=lf
*.prefab merge=unityyamlmerge eol=lf
*.physicMaterial2D merge=unityyamlmerge eol=lf
*.physicMaterial merge=unityyamlmerge eol=lf
*.asset merge=unityyamlmerge eol=lf
*.meta merge=unityyamlmerge eol=lf
*.controller merge=unityyamlmerge eol=lf

我认为我感到困惑的部分原因在于 git 如何使用配置文件的 [section “subsection”]。非常感谢任何指导。提前致谢!

相关内容