奇怪的git diff有时候

时间:2014-10-21 09:14:57

标签: git diff

有时在我提交之前,差异很奇怪。就像在这种情况下, example
#pragma的行没有变化。我刚刚在它上面添加了新方法。由于某种原因,这个差异认为我删除并重写了该行 我该如何避免这种行为?它是什么原因?

1 个答案:

答案 0 :(得分:2)

第294行过去有

#pragma mark web editing

但是现在第294行已经

- (void)aNewMEthod

因为这行294现在包含了之前没有的东西,所以diff认为你已经替换了它。而你做到了。 知道你只是将它向下移动了几行,但差异只是在同一个地方看到两条不同的行,因此它认为你完全取代了它。

第299行曾经是空白,但现在已经

#pragma mark web editing

因为它之前是空白的并且有东西放在那里(由于上面的方法插入它被移动),它认为它是一个新添加的行,而实际上它只是被移动了。

它的作用是什么,它比较新旧不匹配的行和报告。

在git项目中移动文件时,您会看到相同的行为。 Git然后认为您在地点A删除了文件,并在地点B创建了一个具有相同内容的新文件。

这是它的工作原理,您不应该想要避免/改变这种行为,