如何与GIT日志中的删除分开识别线路修改



在某个文件中,我需要从一个提交到另一个提示的确切行为修改后的行。如果我做git log,它会指示我这样的东西,

10 10模块/p2-profile-gen/pom.xml 2 2 pom.xml

4 4 pom.xml

1 0模块/Distribution/pom.xml

1 1 pom.xml

1 1 pom.xml

10 8 pom.xml

29 28模块/p2-profile-gen/pom.xml 175 4 pom.xml

直到第二行

1 1 pom.xml

可以很容易地理解,但是从那时起,我们如何确定它们只是修改或删除。例如,

29 28模块/p2-profile-gen/pom.xml 175 4 pom.xml

我们如何知道哪个是正确的

  1. 29个新添加和28个单独的删除
  2. 28个修改和1个新添加

git log是否有任何选项可以使用,还是有其他方法?预先感谢

git log无法实现这一点,实现此目的的唯一方法是通过git diff,但在其中,它也只能提供无线添加和删除未修改的线。这是因为gitunified view中提供diff输出为context view中的默认值。您可以从此处和上下文视图了解统一的视图。

因此,如果我们在上下文形式中获取git diff的输出,则可以轻松地识别添加,删除和修改的行,因为加上添加的添加显示了" ",带有" - "的删除,并使用"!"进行了修改。为此,我们需要使用git difftool,以下代码可以正常工作

git difftool -y -x "diff -c" <commit1> <commit2>

我认为您要寻找的是git diff

git diff --stat <old-commit> <new-commit> -- <filename>

例如。

$ git diff --stat a54873b a6addbd -- Foo.cpp
 Foo.cpp | 42 +++++++++++++++++++++++++++++++++++-------
 1 file changed, 35 insertions(+), 7 deletions(-)

最新更新