gitattributes неправильно устанавливает драйвер слияния

У меня есть следующая структура каталогов:

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

В моем проекте используются две основные ветки: master и staging, каждая из которых отслеживает разные удаленные приложения (рабочие и промежуточные приложения heroku).

Идея состоит в том, что промежуточная ветвь продвигается вперед с новыми функциями, они отправляются и тестируются на промежуточном удаленном сервере, затем мастер быстро перематывается вперед, чтобы соответствовать промежуточному этапу, и отправляется на рабочий удаленный сервер.

Вот что я хочу сделать: свободно объединить эти две ветки, сохраняя их версии braintree.rb и production.rb отдельными.

Для этого вот что я вставил в .gitattributes (согласно книге ProGit):

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

Файл присутствует в обеих ветках.

Проблема, с которой я сталкиваюсь, заключается в том, что это, похоже, ни на что не влияет. Всякий раз, когда я объединяюсь между ними, файлы все равно меняются, и мне приходится снова их менять.

У меня такое чувство, что я упускаю что-то ужасно очевидное, но пока это ускользает от меня. Я знаю, что другие ответы здесь включали создание пользовательских драйверов слияния, но в книге ProGit этот процесс не упоминается и, похоже, подразумевается, что драйвер ours встроен (и я видел, что он упоминается на страницах руководства, поэтому я м относительно уверен, что это так). Единственная другая вещь, о которой я могу думать, это то, что я каким-то образом поместил .gitattributes в неправильное место или перепутал его содержимое, но я не могу найти много информации об этом. Я пытался переместить его в тот же каталог, что и файлы, но безрезультатно.

Если это поможет, я запускаю git версии 1.7.2 на OS X. Любая помощь будет очень признательна.


person Luke    schedule 25.11.2011    source источник
comment
Мне было бы очень интересно увидеть ответ на этот вопрос. У меня почти идентичная проблема.   -  person ulmangt    schedule 30.03.2012
comment
возможный дубликат .gitattributes и отдельной стратегии слияния для файла   -  person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 28.04.2014


Ответы (1)


Есть два отличных ответа на переполнение стека, которые решают эту проблему:

Как указать git всегда выбирать мою локальную версию для конфликтующих слияний в определенном файле?

и

.gitattributes и отдельная стратегия слияния для файла

Я бы предложил прочитать верхний ответ в первой ссылке. Он длинный, но очень подробный и информативный.

person ulmangt    schedule 04.04.2012