防止主合并文件使用Git(Prevent merging a file from master wi

2019-06-24 20:56发布

在另一个问题 ,建议使用.gitattributes以保持跟踪的文件,但在不同的分支不会合并,但低于我的使用情况下,似乎没有工作..

mkdir git
cd git
git init
echo "B" > b.txt
git add b.txt 
git commit -m 'Initial commit'

echo "b.txt merge=keepMine" > .gitattributes
git add .gitattributes 
git config merge.keepMine.name "always keep mine during merge"
git config merge.keepMine.driver "keepMine.sh %O %A %B"
git commit -m 'Ignore b.txt'

git checkout -b test # Create a branch
git checkout master # Back to master and make change
echo "Only in master" > b.txt
git commit -a -m 'In master'

git checkout test
git merge master # The change in b.txt is being merged...

任何的想法? 谢谢..

Answer 1:

我怀疑它没有工作,因为没有合并冲突。

不过,我可以确认git merge master --strategy=ours正常工作。

这可能是你在找什么: 如何让Git始终选择我的本地版本

如果要指定一个特定的文件中的特定合并策略,你真正需要做的是编写自定义合并驱动程序,在您希望合并司机被用作默认存储库配置中指定。 见上文关于如何使用它的链接。

总之,原因并不在你的使用情况工作是因为你的使用情况不是合并 。 它只刻画上主人一堆的变化与正在创建一个名为测试一个临时党支部,然后上升到掌握以后。 你从来没有真正引入一个承诺,而你在测试分支



Answer 2:

通过提到的定制合并司机carleeto在“所示告诉混帐不合并二进制文件,但选择 ”:

你可以声明在.gitattributes文件,你想要的那种合并的:

echo yourConfigFile merge=keepMine > parentDirectory\.gitattributes


文章来源: Prevent merging a file from master with Git