如何使用git diff查找添加的行(未更改)?

如何使用git diff查找添加的行(未更改)?,git,Git,我在一个项目中有一个变更日志文本文件。我想从该文件中获取两个标记之间的更改列表。我准备了这个命令: git diff tag1..tag2 file | grep -v -e "+++ b/file" -e "@@" | grep "+" 作为输出,我接收标记为已添加的所有行(以+开头)。但是在它们之间可能有一些先前存在的行,但是在提到的标记之间进行了修改(例如更正了拼写错误)。是否有只允许过滤新行或修改行的选项?或者任何允许控制输出中打印的行修改的%条件的选项?Git本身并不这样做,如果您

我在一个项目中有一个变更日志文本文件。我想从该文件中获取两个标记之间的更改列表。我准备了这个命令:

git diff tag1..tag2 file | grep -v -e "+++ b/file" -e "@@" | grep "+" 

作为输出,我接收标记为已添加的所有行(以
+
开头)。但是在它们之间可能有一些先前存在的行,但是在提到的标记之间进行了修改(例如更正了拼写错误)。是否有只允许过滤新行或修改行的选项?或者任何允许控制输出中打印的行修改的%条件的选项?

Git本身并不这样做,如果您关心语义而不是简单的语法,这通常是一个困难的问题。然而,Git确实附带了一个称为
diff highlight
的后处理过滤器。这个Perl脚本中的代码执行您感兴趣的语法分析,因此可以对其进行修改以生成您想要的内容


请参阅以获取要差异突出显示的源。通读自述文件,查看他们关于此类分析中涉及的语义问题的注释。请注意,高亮显示脚本是与Git的其余部分一起安装的,因此您不必从贡献的源代码区域中查找它。

Git本身并不这样做,如果您关心语义而不是简单的语法,这通常是一个困难的问题。然而,Git确实附带了一个称为
diff highlight
的后处理过滤器。这个Perl脚本中的代码执行您感兴趣的语法分析,因此可以对其进行修改以生成您想要的内容


请参阅以获取要差异突出显示的源。通读自述文件,查看他们关于此类分析中涉及的语义问题的注释。请注意,突出显示脚本是与Git的其余部分一起安装的,因此您不必从贡献的源代码区域中查找它。

不幸的是,我找不到任何令人满意的答案(这里也找不到其他地方),所以我不得不自己编写必要的脚本

不幸的是,我找不到任何令人满意的答案(这里也找不到,其他地方也找不到),所以我不得不自己写必要的脚本

正如我所知,git将更改的行标记为删除旧行并添加新行。没有“更改”的线路指示器。尽管如此,您可以看到哪些删除的行和添加的行在同一行号上。听起来很棘手。对于在文件中移动但未更改的行,您希望发生什么情况?这些行在文件中的不同位置,因此我将它们视为新行。正如我所知,git将更改的行标记为删除的旧行并添加新行。没有“更改”的线路指示器。尽管如此,您可以看到哪些删除的行和添加的行在同一行号上。听起来很棘手。对于在文件中移动但未更改的行,您希望发生什么情况?这些行将位于文件中的不同位置,因此我将它们视为新行。