是否可以配置 git diff 以尊重缩进和语法?我不是在谈论忽略缩进和空格,而是使用空行、缩进级别和可能的括号来帮助将旧行与新行匹配。
例如 git diff 经常会切入函数和它们的文档块,像这样:
class C {
/**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
+
+ /**
* Gets your foo up to date.
*/
function foo() {
当我更喜欢
class C {
+
+ /**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
/**
* Gets your foo up to date.
*/
function foo() {
在这个例子中,它仍然是无害的,但有些例子中,由于贪婪和幼稚的 diff 实现,函数和它们的 docblock 真的被撕裂了。
注意:我已经*.php diff=php
在~/.gitattributes
.
编辑:另一个例子:这里 git diff 将属性 docblock 与方法 docblock 混合:
/**
- * @var int
+ * @param string $str
*/