我想要具有相同名称的分支特定文件。我需要能够从我的开发分支合并到master而不对此文件进行任何更改。
例如:
我们假设我想要两个不同的readme.md
文件。在一个我希望有内容:MASTER
和另一个DEV
。但是如果我尝试这样做,在创建pull-request时GitHub会尝试合并这个文件,这正是我的问题。每次进行更改时,我都不希望GitHub合并此文件。
解决此问题的最佳方法是什么?
答案 0 :(得分:4)
我们说project
是要合并的分支的名称,README.md
是保存分支特定信息的文件的名称。
我建议采取以下步骤:
合并项目分支,但确保未提交更改,而不是快速转发
$ git merge --no-commit --no-ff project
取消暂存README.md
文件并签出当前分支机构版本
$ git checkout HEAD -- README.md
完成合并
$ git commit
此外,安装合并驱动程序是有意义的,该合并驱动程序将在合并冲突的情况下保留文件的分支特定版本。在这种情况下,您永远不需要手动解决分支特定文件中的冲突。
这种合并驱动程序通常称为ours
,定义为:
$ git config --global merge.ours.driver true
现在,您可以在.gitattributes
文件中指定何时应使用此合并。
在我们的例子中,需要将以下规则添加到.gitattributes
并提交它:
README.md merge=ours