我正在使用 Git 来跟踪一些 matlab 代码。一个玩具例子最能说明这个问题。到目前为止的项目看起来像这样。
C
/
A--
\
B
A的内容是x=5
我们提交 C,其中行更改为x=6
然后我们提交 B,我们的内容如下
if flag==1
x=5
end
如果我们尝试与项目目标合并,看起来像
C
/ \
A-- D
\ /
B
与 D 中的合并结果,我们会遇到冲突,因为两者的主线都已更改(在 B 中添加了缩进,在 C 中将 5 更改为 6)。
是否有一种最佳实践方法可以集成来自一个分支的缩进更改和来自另一个分支的内容更改以获得合并结果?
我已经阅读了https://stackoverflow.com/a/5262473/288545中的一种策略,虽然这可以避免冲突,但它会丢弃缩进以支持内容更改(这是一种改进,但仍然使更难阅读代码)。
我想我可以在编写代码时吸收它而不改变缩进。这使得它的可读性降低,但在 matlab 中并不是什么大问题。然而,在 python 中,缩进真的很重要,那么 python 人如何处理它呢?如果我们稍后将大块代码更改为控制结构内部,这会变得更加丑陋,因此差异涉及很多行并使合并冲突成为一个非常令人头疼的问题。
是否有一种合并策略可以分别处理间距变化和内容变化,然后将它们整合起来?我希望合并的结果是
if flag==1
x=6
end