邪恶融入git?
回答
因为它将代码放在没有人问过的代码中。因为如果你有这样的代码:
$foo = bar;
$baz = qxx;
而且这种变化:
$foo = bar;
$foo++;
$baz = qxx;
得到了合并,这一变化:
$foo = bar;
$foo--;
$baz = qxx;
的方式,不知怎的,生产:
$foo = bar;
$foo++;
$foo--;
--$baz;
$baz = qxx;
显然,这是邪恶的。
我猜想它是在man gitglossary
足够的关注,因为您的合并算法越多涉及,他们就越有可能产生这样的事情。
产生这个,只需使用--no-commit选项调用git-merge,添加一些更改,检入并提交。预生成的合并提交消息将被自动使用。 – Cascabel
@Jefromi通过这个定义,任何需要手动解决的冲突合并是一个邪恶的合并? @chaos说什么有很强的语义差异;您可能可以得到他的结果,而不会在合并过程中发生任何冲突。这真是邪恶。 – krosenvold
何处 - $ baz;来自。我不认为GIT随机产生代码。对我来说,这是非常邪恶的增量和减量合并,没有任何人澄清哪一个是正确的代码。结果是两个更改破坏了代码。来自任何地方的线将不得不由某人手动“纠正”合并。那时,这不是GIT的错!?!?!? –
我认为它可能被命名为'邪恶合并',因为它是解决注释文件(生成行式历史注释)时解决“git blame”的难题。当你在主分支上开发的功能“A”,并在侧部的分支功能“B”,以及这些功能冲突语义(非文本)的方式migh需要
邪恶合并。一个例子是对全局变量使用相同的名称,具有不同的含义 - 这需要将变量重命名为其中一个功能。
对于邪恶合并“git show --cc
”有非空的紧凑组合diff(但我不确定它是否是等价关系;含义可能只在一个方向上,即“邪恶合并”,则非空“” )。
直观上,@ chaos的回应感觉更为正确,但我知道你对这些事情很好;)感觉就像你在描述一个很好的旧合并冲突,其中有两个人解决了同一问题的重叠部分 - 或者甚至可能是同样的问题。合并完成后,为什么要重新创建它?把这个“相当规则”的事件称为“邪恶”不是太过诗意吗? – krosenvold
解决冲突*通常包括选择其中一个版本,有时从其他版本的行中选择一个版本行。邪恶的合并有不在其父母中的行,所以即使通过最复杂的(通用)合并策略也不能自动重新创建。 –
*(删除关于“邪恶”合并和自动化过程的行)* –
在Linus Torvalds的自己的话(从git mailing list拍摄):
一个“邪恶合并”的东西,让从没有 身边走过,并没有真正解决冲突
变化
值得一提的是,一个来自“邪恶合并”的“邪恶变化”可能在无声中丢失,同时重新绑定包含与其他提交不冲突的“邪恶变化”的“邪恶合并”。 使用--preserve-merges
在such a case中没有帮助。
- 1. AutoCompleteBox是邪恶的
- 2. 为什么Class.newInstance()“邪恶”?
- 3. 'TryAction()'方法是否邪恶?
- 4. Openfire安全性(Firebug邪恶)
- 5. 邪恶模式下的Smex
- 6. Emacs的邪恶领袖和邪恶的书呆子,评议冲突
- 7. GIT有没有邪恶的双胞胎问题?
- 8. Django包括 - 他们是邪恶的?
- 9. Flurry User ID是否是邪恶的?
- 10. 完成,在点邪恶模式错误
- 11. '邪恶'平等减慢代码吗?
- 12. 邪恶DICOM列出所有元素
- 13. 邪恶模式最佳实践?
- 14. 子查询是否是邪恶的?
- 15. 邪恶的pdf css边界框?
- 16. 邪恶模式Emacs中的键映射
- 17. emacs邪恶模式关键地图
- 18. PHP模块过滤邪恶HTML
- 19. RJS是邪恶的,为什么?
- 20. 为什么JFormattedTextField是邪恶的?
- 21. 以上CSS是必要的邪恶?
- 22. Linq,OrderByDescending,首先,和邪恶的DefaultIfEmpty
- 23. 没有比null更邪恶吗?
- 24. emacs(邪恶)绑定移动选定的行结束,插入空格
- 25. 为什么cmake文件GLOB是邪恶的?
- 26. ENUM真的很邪恶(SHOW COLUMNS还是SELECT)?
- 27. 是否有具体的用户故事场景邪恶?
- 28. 如何使EMACS邪恶模式显示行号码
- 29. 编辑命令,切换到线程在邪恶cleverparens宏/ Clojure的
- 30. 在视觉模式下禁用高光线(邪恶模式)
我来自[此页](http:// stackoverflow。com/questions/2910044/does-git-have-evil-twin-issues/2910388#2910388),我发现它非常有帮助意识到,它不是'git的邪恶合并':邪恶的合并是不是一些自然的有时发生的现象**;相反,这是人们有时会在git中做的事情(就像人们有时会导致其他事故,如推动公共回购的变化一样)。这里的外卖是:不要这样做! (_or至少保留合并语义__) – sehe
sehe是正确的,这些是Linus Torvalds本人的话: “邪恶的合并”是使得既不是来自 方,也不是实际上解决冲突的变化 –