regex - Git 差异 : ignore lines starting with a word

标签 regex git git-diff

据我所知here ,我们可以告诉 git diff 忽略以 * 开头的行,使用:

git diff -G '^[[:space:]]*[^[:space:]*]'

我如何告诉 git 忽略以一个或更多(例如:* Generated at)开头的行,而不仅仅是一个字符?

这个文件应该被忽略,它只包含微不足道的变化:

- * Generated at 2018-11-21
+ * Generated at 2018-11-23

不应忽略此文件,它不仅包含琐碎的更改:

- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a * 

最佳答案

Git 正在使用 POSIX似乎不支持 lookarounds 的正则表达式.这就是为什么 @Myys 3's approach 的原因不起作用。一个不太优雅的解决方法可能是这样的:

git diff -G '^\s*([^\s*]|\*\s*[^\sG]|\*\sG[^e]|\*\sGe[^n]|\*\sGen[^e]|\*\sGene[^r]|\*\sGener[^a]|\*\sGenera[^t]|\*\sGenerat[^e]|\*\sGenerate[^d]).*'

这将过滤掉所有以“* Generated”开头的更改。

测试:https://regex101.com/r/kdv4V0/3

关于regex - Git 差异 : ignore lines starting with a word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53451455/

相关文章:

java - 用正则表达式匹配两个url

key hazelcast 上的正则表达式

git - 如何将一个文件与 Git 中的任意版本进行比较?

java - EGit - "Replace With Commit..."无法正常工作

git - 在 git 中查看分阶段更改的差异

git - 交互模式下的一些选择在 git 上不起作用

javascript - 排除正则表达式模式中仅由制表符组成的空格

正则表达式删除尖括号后的文本

python - 如何在未跟踪 VCS 的 Python sdist 中分发文件?

Git:创建先前提交的文件系统状态