邪恶合并在git中?

“ man gitglossary ”包含以下邪恶合并的定义:


邪恶合并是一种合并,它引入了未出现在任何父项中的更改。


我不确定我是否理解作者试图达到的观点。为什么是邪恶的?


桃花长相依
浏览 484回答 3
3回答

小唯快跑啊

因为它把事情放到了代码中,所以没人问过要在那里。好像您有此代码:$foo = bar;$baz = qxx;而这个变化:$foo = bar;$foo++;$baz = qxx;与此更改合并:$foo = bar;$foo--;$baz = qxx;以某种方式产生的方式:$foo = bar;$foo++;$foo--;--$baz;$baz = qxx;显然,这是邪恶的。我想应该引起足够的关注,man gitglossary因为您的合并算法越介入,它们产生这种事情的可能性就越大。

海绵宝宝撒

用Linus Torvalds本人的话(摘自git邮件列表):“邪恶的合并”是指做出来自双方的更改并且实际上没有解决冲突的更改

梵蒂冈之花

我认为它可能被称为“邪恶合并”,因为注释文件(生成逐行历史注释)时,“ git blame”很难解决。在主分支上开发功能“ A”,在侧分支上开发功能“ B”时,可能需要进行邪恶合并,并且这些功能以语义(非文本)方式发生冲突。一个示例是对全局变量使用相同的名称,但含义不同-这需要为其中一个功能重命名变量。对于邪恶合并“ git show --cc”具有非空紧凑组合差异(但我不确定是否是等价关系;含义可能只在一个方向上,即“邪恶合并”然后是非空“ git diff-tree -p --cc”)。
打开App,查看更多内容
随时随地看视频慕课网APP