git认为文件的两个版本是不同的,但实际上它们的数据不是:
@@ -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挂起。
发布于 2019-04-11 20:39:50
配置挂起是因为json_pp不接受文件名作为参数。这意味着在您的配置中,json_pp等待std-输入流上的输入,并且由于您没有交付git挂在我的gitconfig中的任何输入流,所以我实现了如下json_pp:
[diff "json"]
textconv = "cat \"$1\" | json_pp --json_opt=canonical,pretty" 对我来说这很好。如果您愿意,可以将--json_opt值更改为您最喜欢的输出格式。但是,如果键的顺序改变了,这个配置仍然会显示出不同的情况。
在git版本2.16.1.windows.1中测试
发布于 2022-09-14 08:27:59
git认为两个版本的.json文件是不同的,但实际上它们的数据不是。
他们是不同的,文字上的不同。根据设计,这是git版本文件的唯一方式。
我们如何让git忽略JSON文件的这种差异?
你不能。您所引用的链接仅涉及在使用git-diff工具查看JSON文件时转换JSON文件。
广泛接受的提交JSON和其他类似配置文件(xml等)的做法。机器生成的数据通常是通过强制排序顺序生成的。在您的示例中,您似乎使用了一个工具来进行区分大小写的排序,而该文件最初是以不区分大小写的方式排序的。
https://stackoverflow.com/questions/46185051
复制相似问题