我有如下的目录结构:
project/
.git/
...
app/
...
config/
initializers/
braintree.rb
environments/
production.rb
.gitattributes
我的项目使用两个主要的分支,master和staging,分别跟踪不同的远程仓库(production和staging heroku应用)。
这个想法是,staging分支随着新特性不断向前推进,在staging远程仓库上进行推送和测试,然后将master快进到与staging匹配并推送到production远程仓库。
这里是我想做的事情:在保持它们各自版本的braintree.rb
和production.rb
的情况下,自由合并这两个分支。
为了实现这一点,这里是我在.gitattributes
中加入的内容(根据ProGit书):
config/initializers/braintree.rb merge=ours
config/environments/production.rb merge=ours
文件在两个分支中都存在。我遇到的问题是,这似乎对任何事情都没有影响。每当我在两个分支之间进行合并时,文件都会被更改,然后我必须再次去更改它们。
我有一种感觉,我可能错过了什么非常明显的东西,但到目前为止,它还没有逃脱我的注意。我知道其他答案涉及创建自定义合并驱动程序,但ProGit书籍没有提到此过程,并且似乎暗示
ours
驱动程序是内置的(我在man页面中也看到了它的提及,所以我相对确定)。我唯一能想到的是,我不小心将.gitattributes
放在了错误的位置或者弄乱了它的内容,但我找不到太多相关信息。我已经尝试将其移动到与文件相同的目录中,但没有成功。如果有帮助的话,我正在OS X上运行git版本1.7.2。非常感谢任何帮助。