我的项目中有一个xml文件:mainWindow.ui。它是GUI的Qt Designer文件。对于每个图标和其他资源,都有一行如下:
<iconset resource="../build/resources.qrc">
问题是resources.qrc是一个配置文件,其位置取决于特定用户的构建目录(根据他们的偏好,每个人的情况往往不同,例如
<iconset resource="../../build/resources.qrc">
这导致编辑mainWindow.ui的开发人员之间的激烈争斗,因为他们每次都会更改大约50行,这意味着每次合并时此文件都会进行冗长乏味的手动合并请求发生。
在不使mainWindow.ui成为配置文件的情况下,我可以告诉git不允许更改这些行,还是可以告诉Qt Designer修复该位置?我该如何避免这种情况?
答案 0 :(得分:1)
您可以设置一个.gitattributes
文件,该文件可以指定使用our
设置解决所有合并冲突:
mainWindow.ui merge=ours
这将阻止mainWindow.ui
被合并覆盖。这将通过接受文件的当前状态来静默解析合并,而不是冲突。如果开发人员拥有自己的设置分支,这可能会很好。如果他们直接在master上工作,那就不太好了,因为他们会推送他们自己的设置。
或者,在您的情况下可能更好,每个开发人员都可以强制git忽略对mainWindow.ui
的更改:
git update-index --skip-worktree mainWindow.ui
这非常令人困惑,但它使得Git在推送时忽略了文件中的更改,但是Git在拉动时仍然试图保留本地文件中的更改,只有在更新遥控器时才更新它。可以找到概述here。