【发布时间】:2018-01-30 00:08:45
【问题描述】:
我的(网络)应用程序有一个主分支和一个测试分支。这些项目几乎相同,除了一个设置应用程序的文件,比如“setup”。
每当我将一个分支合并到另一个分支时,我希望该分支保留其设置版本。也就是说,git 不应该尝试合并对该文件的更改。
我按照guidance from the Pro Git book 创建了一个 .gitattributes 文件,其中包含“setup merge=ours”行。但是,这不起作用 - 如果我引入冲突,也不会使用快进合并。
(准确地说:
$: mkdir gitest
$: cd gittest
$: git init
$: echo "setup merge=ours" >> .gitattributes
$: echo "master" >> setup
$: git add setup .gitattributes
$: git commit -a -m ...
$: git branch test
$: git checkout test
$: echo "test" >> setup
$: git commit -a -m ...
$: git checkout master
$: git merge test
预期结果:setup 包含单词“master”,而 git 执行 ff 合并并且 setup 是“test”。)
【问题讨论】:
-
我查看了 git 源代码,但看不到
merge=ours是如何工作的。我想有人没有尝试就写了。另一个答案提供了一个更复杂的解决方案,但它实际上似乎有效。 -
这似乎确实有效!谢谢 Karl。作为对那个答案的轻微修改:简单地将“exit 0”作为合并驱动程序比专门的 bash 脚本更容易做到这一点。
标签: git