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