gpt4 book ai didi

git - 防止将来自 master 的文件与 Git merge

转载 作者:太空狗 更新时间:2023-10-29 13:46:09 26 4
gpt4 key购买 nike

another question建议使用 .gitattributes 以跟踪文件但不在不同分支中 merge ,但我下面的用例似乎不起作用..

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...

有什么想法吗?谢谢..

最佳答案

我怀疑它不起作用,因为没有 merge 冲突。

但是,我可以确认 git merge master --strategy=ours 按预期工作。

这可能就是您正在寻找的:How to tell Git to always select my local version

如果您想为特定文件指定特定的 merge 策略,您真正需要做的是编写自定义 merge 驱动程序并在您的存储库配置中指定您希望将该 merge 驱动程序用作默认值。请参阅上面的链接了解如何使用它。

简而言之,它在您的用例中不起作用的原因是因为您的用例不是 merge 。它只描绘了 master 上的一堆更改,其中创建了一个名为 test 的临时分支,然后稍后向上移动到 master 。 当你在测试分支上时,你永远不会真正引入提交

关于git - 防止将来自 master 的文件与 Git merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com