相关疑难解决方法(0)

我可以在未跟踪文件上使用git diff吗?

是否有可能要求git diff在其diff输出中包含未跟踪的文件?或者我最好的选择是添加我创建的新文件以及我编辑和使用的现有文件

git diff --cached
Run Code Online (Sandbox Code Playgroud)

git diff

244
推荐指数
8
解决办法
12万
查看次数

使用jq或替代命令行工具来区分JSON文件

是否有任何命令行实用程序可用于查找两个JSON文件是否与in-dictionary-key和within-list-element排序的不变性相同?

这可以用jq其他等效工具完成吗?

例子:

这两个JSON文件是相同的

A:

{
  "People": ["John", "Bryan"],
  "City": "Boston",
  "State": "MA"
}
Run Code Online (Sandbox Code Playgroud)

B:

{
  "People": ["Bryan", "John"],
  "State": "MA",
  "City": "Boston"
}
Run Code Online (Sandbox Code Playgroud)

但是这两个JSON文件是不同的:

A:

{
  "People": ["John", "Bryan", "Carla"],
  "City": "Boston",
  "State": "MA"
}
Run Code Online (Sandbox Code Playgroud)

C:

{
  "People": ["Bryan", "John"],
  "State": "MA",
  "City": "Boston"
}
Run Code Online (Sandbox Code Playgroud)

那将是:

$ some_diff_command A.json B.json

$ some_diff_command A.json C.json
The files are not structurally identical
Run Code Online (Sandbox Code Playgroud)

diff json jq

64
推荐指数
6
解决办法
3万
查看次数

忽略与git diff中的字符串匹配的更改

我对git中受版本控制的大量文件做了一个简单的更改,我希望能够检查没有其他更改正在进入这个大型提交.

这些变化都是形式

-                       "main()",
+                       OOMPH_CURRENT_FUNCTION,
Run Code Online (Sandbox Code Playgroud)

其中"main()"可以是任何函数的名称.我想生成不属于这种形式的所有更改的差异.

git diff的-G和-S选项非常接近 - 它们发现与字符串或正则表达式匹配的更改.

有没有办法做到这一点?

到目前为止的尝试

另一个问题描述了如何使用这种方法来否定正则表达式,我认为命令应该是

git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'
Run Code Online (Sandbox Code Playgroud)

但这只是返回错误消息

fatal: invalid log-grep regex: Invalid preceding regular expression
Run Code Online (Sandbox Code Playgroud)

所以我猜git不支持这个正则表达式功能.

我还注意到标准的unix diff有-I选项"忽略其行符合RE的变化".但我找不到用unix diff工具替换git自己的diff的正确方法.

regex git diff

28
推荐指数
3
解决办法
6792
查看次数

标签 统计

diff ×3

git ×2

jq ×1

json ×1

regex ×1