首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非常防御性的git合并策略

非常防御性的git合并策略
EN

Stack Overflow用户
提问于 2018-01-23 16:54:20
回答 1查看 87关注 0票数 0

是否有一种方法可以防止git在两个版本的文件与共同祖先不同时自动合并文件?

代码语言:javascript
复制
     changes foo.cpp
        |
    ----y---         (branch-a)
   / 
--x----------z---    (branch-b)
             |
         also changes foo.cpp

设x是文件foo.cpp的共同祖先。

在提交y中,例如,从foo.cpp中删除一个函数栏()。提交z在foo.cpp末尾添加一个函数bazz()。

当我将分支-a合并到分支-b时,我想确保在合并之后,函数bar()不再存在。在递归合并策略中,有时会发生这样的情况,合并后会出现bar()。

在这种情况下是否有任何最佳做法?

EN

回答 1

Stack Overflow用户

发布于 2018-01-23 18:16:10

如果您看到bar()未被删除,这肯定意味着git出于某种原因认为更改已经在结果中被考虑(并重写)。我的猜测是,合并被恢复,或者是一个共同的祖先(在两个分支分离之前)在其中一个分支上被恢复,或者类似的事情。

重点是,这不是正常的行为,学习识别可能发生的情况可能比完全阻止git的合并功能更有意义。

但是,回答你的问题,当然。可以使用.gitattributes指定总是失败的合并驱动程序。(这方面的快捷方式是将文件标记为binary。)但是,这样做和获得任何有用的“部分合并结果”都要困难得多,并且需要进行定制编码,这超出了我在这里可以有效描述的范围。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48407019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档