2011-05-10 70 views
0

我想请教一下你的方法是什么样子的处理情况是这样的:我有这样的设置文件mongoid.yml,和我有同一项目的两个分支:主人和开发人员。我没有把mongoid.yml放到gitignore中,因为我在推送两个分支时都需要它。但是,无论何时我在两个分支中编辑它,例如,如果我在dev分支中编辑它,它会显示在git状态中,当我提交然后将dev合并到master时,master分支的mongoid现在看起来像dev中的一个。我需要他们与众不同。你会如何处理这个问题?谢谢!混帐:两个分支不容忽视文件需要不同

回答

-1

您可以使用您的文件不同的合并策略,以避免合并。

创建.gitattributes文件有:

mongoid.yml merge=ours 

然后,当合并在此文件冲突,旧的将被保留。

更多的相关信息herehere

+0

我认为这样做,链接的解释基本上就是我自己的问题:避免数据库配置文件被另一个分支覆盖,因为它们使用不同的数据库表。谢谢Michaël – 2011-05-12 06:54:01

-1

你可以让你的更改文件在一个单独的始终致力于对大师的顶部,并合并其母公司。

例如:

    dev工作
  • 如果你有改变mongoid.yml,你做出承诺,只有这个文件改变了,
  • 切换到master之前,你git rebase -i master和移动你的mongoid.yml承诺底部(和壁球他们都与第一个,如果有一个以上的),
  • 然后切换到master和合并母公司Ø ˚Fdevgit merge dev^

这是一个小的工作对每个合并和你失去你的历史上的Dev分支mongoid.yml变化,但它应该工作。

0

你想使一个Dev分支,然后检查出来。将配置文件更改为您需要的配置文件。切换回另一个分支。

git merge -s ours dev 

这会忽略你的Dev分支做了什么,但在历史上还标记为如果这些变化已经合并。从现在开始,当你与开发分支合并时,你的配置将保持你所需要的状态。这是建立开发分支的正确方法。

希望这会有所帮助。

+0

如果稍后更改文件(在dev或master中),会发生什么情况? – 2011-05-10 22:29:52

+0

谢谢adymitruk我和MichaëlWitrant一​​起,因为他的例子中的链接似乎直接解决了我的问题。 – 2011-05-12 06:55:45