gitattributes неправильно устанавливает драйвер слияния
У меня есть следующая структура каталогов:
project/
.git/
...
app/
...
config/
initializers/
braintree.rb
environments/
production.rb
.gitattributes
В моем проекте используются две основные ветви: основная и промежуточная, каждая из которых отслеживает разные пульты (приложения для производства и постановки герои).
Идея состоит в том, что промежуточная ветвь движется вперед с новыми функциями, они передаются и тестируются на промежуточном пульте, затем мастер быстро пересылается в соответствии с промежуточной подготовкой и передается на производственный пульт.
Вот что я хочу сделать: свободно объединить эти две ветви, сохранив их версии 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. Любая помощь будет принята с благодарностью.
1 ответ
Есть два отличных ответа переполнения стека, которые решают эту проблему:
а также
.gitattributes & отдельная стратегия слияния для файла
Я бы посоветовал прочитать верхний ответ в первой ссылке. Это долго, но очень подробно и информативно.