当我做一个git diff时,它会显示已添加的行:
+ this line is added
Run Code Online (Sandbox Code Playgroud)
已删除的行:
- this line is removed
Run Code Online (Sandbox Code Playgroud)
但它也显示了许多未修改的行:
this line is not modified
this line is also not modified
Run Code Online (Sandbox Code Playgroud)
这导致实际的git diff看起来像这样:
+ this line is added
this line is not modified
- this line is removed
this line is not modified
Run Code Online (Sandbox Code Playgroud)
我可以要求git只显示已修改的行并忽略所有其他未修改的代码吗?我写了一个方法,它将删除所有在它们前面没有"+"或" - "符号的行,但我相信必须有一个更简单的方法来执行此操作.
在我的git diff中,我只对看到已修改的行感兴趣.
提前致谢.
如何获得输出 git diff --color-words,但在Git之外?
最近的事情是wdiff -t,但它强调/反转事物而不是使用绿色/红色,并且不允许指定我的空白正则表达式.
我正在尝试生成在特定提交中更改的文件的列表.问题是,每个文件在文件顶部的注释中都有版本号 - 并且由于此提交引入了新版本,这意味着每个文件都已更改.
我不关心更改的注释,所以我想让git diff忽略所有匹配的行^\s*\*.*$,因为这些都是注释(/**/的一部分).
我找不到任何方法来告诉git diff忽略特定的行.
我已经尝试设置一个textconv属性,使git在传播文件之前将文件传递给sed,这样sed可以去掉有问题的线 - 这个问题就是git diff --name-status实际上并不是文件,只是比较哈希值,当然所有哈希值都已更改.
有没有办法做到这一点?
我用git控制来自网站的mysql数据库转储版本.
使用--skip-extended-insert,所以每条记录都在它自己的行上,它可以很好地跟踪变化.它还允许我从历史记录中提取旧版本的数据库并导入它们.
有没有办法告诉git忽略包含某些模式的某些行或行?
正如我在这里学到的,我们可以告诉git diff忽略以*using开头的行:
git diff -G '^[[:space:]]*[^[:space:]*]'
Run Code Online (Sandbox Code Playgroud)
我如何告诉 git 忽略以一个或更多(例如:)开头的行* Generated at,而不仅仅是一个字符?
这个文件应该被忽略,它只包含一些微不足道的变化:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
Run Code Online (Sandbox Code Playgroud)
此文件不应被忽略,它不仅包含微不足道的更改:
- * Generated at 2018-11-21
+ * Generated at 2018-11-23
+ * This line is important! Although it starts with a *
Run Code Online (Sandbox Code Playgroud)