2012-07-20 76 views
2

我创建了一个测试分支分支并在其上做了一些提交。在这些提交中有自动格式更改。所以当我输入 git diff master test 我几乎可以看到每一行旧格式都被删除( - 红色),并添加了(+绿色)新格式的新行。 GIT:恢复从主分支格式化,但保持非格式更改

我想保留我的测试分支的变化,但我想恢复旧的格式。这甚至有可能吗? git是否知道哪些新行对应于旧行?如果该行被修改了,这很容易做到,但是git diff将它显示为已删除,然后添加了一行 - 就像他们在git的想法中没有共同之处。

我尝试过各种合并策略,但似乎这个问题需要更多的东西。

回答

1

小提示。如果你想查看两个banches之间的差异,忽略空白变化,使用 git diff -b而不是git diff

回到你的问题。这实际上取决于如何改变。如果您进行了有益的改进并分别进行重新格式化,则可以恢复重新格式化。您只需要还原一个或多个提交。否则,我认为它不可能自动执行。如果在git diff中有几个选项,你可以找到有用的。

+0

感谢您的回答。因此,在我看来,我想要做的事情不可能以只用git的简单方式进行。提交包括格式和有用的更改,这些不是分开的。问题在于格式化不仅仅是一个空格(-b)问题,它还将一些行分割或合并在一起,所以与/ t,/ n,/ r也有一些区别。 – 2012-07-20 01:03:31

+0

我通常使用'git diff -w',忽略更多的空格(可能太多但很少)。 还有'gitk --all&'并检查'ignore space change'框。 – karmakaze 2012-07-20 03:15:29