gitattributes没有正确设置合并驱动程序

时间:2011-11-25 08:57:30

标签: git git-merge gitattributes

我有以下目录结构:

project/
    .git/
        ...
    app/
        ...
    config/
        initializers/
            braintree.rb
        environments/
            production.rb
    .gitattributes

我的项目使用两个主要分支,即主分区和分段,每个分支跟踪不同的远程(生产和暂存heroku应用程序)。

我们的想法是,登台分支向前推进新功能,在登台遥控器上推送并测试,然后快速转发主控以匹配暂存并推送到生产遥控器。

这就是我想要做的事情:自由合并这两个分支,同时保持braintree.rbproduction.rb的版本分开。

为了实现这一点,我在.gitattributes中放置了这些内容(根据ProGit书):

config/initializers/braintree.rb merge=ours
config/environments/production.rb merge=ours

该文件存在于两个分支中。

我遇到的问题是,这似乎对任何事情都没有任何影响。每当我在两者之间合并时,文件都会被更改,我必须再次更改它们。

我有一种感觉,我错过了一些非常明显的东西,但到目前为止它正在逃避我。我知道其他答案涉及创建自定义合并驱动程序,但ProGit书中没有提及此过程,似乎暗示ours驱动程序是内置的(我在手册页中看到过它,所以我相对肯定它是)。我能想到的唯一另一件事就是我以某种方式将.gitattributes置于错误的位置或搞砸了其中的内容,但我找不到相关信息。我已经尝试将它移动到与文件相同的目录,但无济于事。

如果它有任何帮助,我在OS X上运行git版本1.7.2。任何帮助都将非常感谢。

1 个答案:

答案 0 :(得分:3)

有两个出色的Stack Overflow响应可以解决这个问题:

How do I tell git to always select my local version for conflicted merges on a specific file?

.gitattributes & individual merge strategy for a file

我建议您阅读第一个链接中的最佳答案。它很长,但非常详细和内容丰富。