为了账号安全,请及时绑定邮箱和手机立即绑定

邪恶合并在git中?

邪恶合并在git中?

Git
桃花长相依 2019-11-03 13:04:00
“ man gitglossary ”包含以下邪恶合并的定义:邪恶合并是一种合并,它引入了未出现在任何父项中的更改。我不确定我是否理解作者试图达到的观点。为什么是邪恶的?
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

因为它把事情放到了代码中,所以没人问过要在那里。好像您有此代码:


$foo = bar;

$baz = qxx;

而这个变化:


$foo = bar;

$foo++;

$baz = qxx;

与此更改合并:


$foo = bar;

$foo--;

$baz = qxx;

以某种方式产生的方式:


$foo = bar;

$foo++;

$foo--;

--$baz;

$baz = qxx;

显然,这是邪恶的。


我想应该引起足够的关注,man gitglossary因为您的合并算法越介入,它们产生这种事情的可能性就越大。



查看完整回答
反对 回复 2019-11-04
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

用Linus Torvalds本人的话(摘自git邮件列表):


“邪恶的合并”是指做出来自双方的更改并且实际上没有解决冲突的更改


查看完整回答
反对 回复 2019-11-04
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

我认为它可能被称为“邪恶合并”,因为注释文件(生成逐行历史注释)时,“ git blame”很难解决。


在主分支上开发功能“ A”,在侧分支上开发功能“ B”时,可能需要进行邪恶合并,并且这些功能以语义(非文本)方式发生冲突。一个示例是对全局变量使用相同的名称,但含义不同-这需要为其中一个功能重命名变量。


对于邪恶合并“ git show --cc”具有非空紧凑组合差异(但我不确定是否是等价关系;含义可能只在一个方向上,即“邪恶合并”然后是非空“ git diff-tree -p --cc”)。



查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 478 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信