3

git认为一个.json文件的两个版本不同,但实际上它们的数据不是:

@@ -469,9 +479,9 @@
       "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
       "dev": true,
       "requires": {
+        "JSONStream": "1.3.1",
         "combine-source-map": "0.7.2",
         "defined": "1.0.0",
-        "JSONStream": "1.3.1",
         "through2": "2.0.3",
         "umd": "3.0.1"
       }

我们如何告诉 git 忽略 JSON 文件的这种差异?

笔记:

以下来自 Tomasz Wegrzanowski 博客的代码:

echo "*.json diff=json" >> .gitattributes
git config diff.json.textconv json_pp

不工作并导致挂起git diff

4

1 回答 1

2

我的事情你配置挂起导致 json_pp 不接受文件名作为参数。这意味着在您的配置中 json_pp 等待 std-input 流上的输入,并导致您不提供任何输入流您的 git diff 挂起在我的 gitconfig 中,我已经像这样实现了 json_pp:

[diff "json"]
         textconv = "cat \"$1\" | json_pp --json_opt=canonical,pretty" 

对我来说,这很好用。如果您愿意,您可以更改这些--json_opt值以获得您最喜欢的输出格式。但是如果键的顺序改变了,这个配置仍然会显示出差异。

在 git 版本2.16.1.windows.1中测试

于 2019-04-11T20:39:50.547 回答