首页 > 解决方案 > gitattributes -merge 用于一个特定目录(现有仓库)

问题描述

抱歉,如果这是重复的。我已经搜索但没有找到任何似乎有效的东西。

我有一个 git repo,它已经启动并运行了历史、不同的分支等。

repo 没有预先存在的.gitattribute文件,所以我添加了一个。

My.gitattribute位于根文件夹中,包含以下内容:

#I've tried the following:
#./src/views/component-testing -merge
#./src/views/component-testing/*.* -merge

#Current content:
./src/views/component-testing/* -merge

然后,我尝试将另一个分支(在组件测试中具有冲突文件)合并到我当前的分支中。这是结果:

> git merge conflicting-branch
Auto-merging src/views/component-testing/component-testing.tsx
CONFLICT (content): Merge conflict in src/views/component-testing/component-testing.tsx

为什么这不起作用?

标签: gitgitattributes

解决方案


这里存在三个问题:

  1. -merge看起来像文件的属性.gitattributes它不属于.gitignore.

  2. -merge并不意味着“不要合并这些文件”,而是意味着这些文件不可自动合并。换句话说,它们的内容尝试进行三路合并没有任何意义,通常是因为它们每次都被完全重写并且没有共同的区域。(也许是因为它们是二进制的。)

  3. 一旦文件被签入到存储库,就不能忽略它们。如果您有合并冲突,因为您在两个不同的分支中更改了文件,那么您需要以某种方式解决该问题。你总是可以站在他们的一边,但你必须采取行动。


推荐阅读