显示过去的更改

时间:2019-04-25 08:19:47

标签: git

我想在文件中显示一行的更改日志。问题是命令 git log {commitHash} -p -1 -L 17,+ 1:{filePath} 为我提供了{commitHash}之后第17行的历史。我想要的是以前的17行的变更日志。

我看了看文件,发现提交后第17行现在是20-22行。所以我尝试了 git log {commitHash} -p -1 -L 20,+ 3:{filePath}

commit {commitHash} 
Author: {author}
Date:   {date}

   {commitMessage}

diff --git a/{filePath} b/{filePath}
--- a/{filePath}
+++ b/{filePath}
@@ -17,1 +20,3 @@
-   <button type="button" class="btn btn-info" tooltip="someTooltip" placement="bottom" disabled>
+   <button type="button" class="btn btn-info"
+    tooltip="someTooltip"
+    placement="bottom" disabled>

我基本上想要的命令是我提供第17 + 1行,但是得到 git log {commitHash} -p -1 -L 20,+ 3:{filePath} 的结果命令。

相关问题:Retrieve the commit log for a specific line in a file?

1 个答案:

答案 0 :(得分:1)

您似乎希望基于基准行号从git diff输出中获取块。 这是可以做到的丑陋的Perl。

git diff -U0 d462a1f6 e627666c | perl -e 'while(my $line = <>){ if($line =~ /^@@ -14/) { while($line = <>) { if($line =~ /^@@/) {exit} print $line} } }'

在Windows上使用git bash对我来说可以正常工作。

您当然希望将示例中的“ 14”替换为所需的行号。

您还可以过滤输出,以仅显示添加的行,并且会有一些细微的变化,例如

print $line if $line =~/\+/