我第一次尝试使用.gitattributes。我认为我必须做错事,因为它不起作用,因为我认为使用merge=ours
属性的目的是为了(?)。
我的用法示例:
我有两个分支;一个是"主人"另一个是" GCE-Site"。 " GCE-Site"具有不同设置的分支也存在于" master"我不想合并到" master" [或其他分支]。在两个分支上,我有.gitattributes
包含以下规则:
README.md merge=ours
config.php merge=ours
.gitattributes merge=ours
.gitignore merge=ours
.cache/ merge=ours
需要规则的所有文件都在根级别以及.cache /文件夹之上的所有内容。当我执行git merge GCE-Site
时,当我不想要时,所有文件仍会合并到主文件中。
我有什么遗失的吗?非常感谢您的帮助。日Thnx
答案 0 :(得分:9)
一旦我知道自己在做什么就轻松修复:我错过了在我的本地环境中使用git config --global merge.ours.driver true
添加合并策略。
答案 1 :(得分:2)
如“.gitattributes & individual merge strategy for a file”中所述:
合并驱动程序仅在非平凡情况下调用,即如果master和test都触及设置(并且您需要首先定义合并驱动程序)。
您可以在“How do I tell git to always select my local version for conflicted merges on a specific file?”中看到并发修改(即两个分支中的修改)的示例。
因此,如果您的合并不涉及修改两个分支中cache/
文件夹中的相同文件,则永远不会调用您的合并驱动程序。
但是在你的情况下,对于具有不同设置的文件,我建议不使用合并驱动程序,而是使用content filter driver,如“Keep settings in branch”
这允许您保持版本控制:
cache/
文件夹