【问题标题】:Git blame ignoring specific commit [duplicate]Git责备忽略特定提交[重复]
【发布时间】:2019-12-11 03:23:06
【问题描述】:

我使用git blame 命令查看在哪个提交中添加了一些特定的代码行,但有时我会遇到同样的问题:有人进行了某种代码格式化,或者更改了函数界面并刷新了所有客户端代码.

最终 git blame 只显示特定代码行上的最后一次提交。如何忽略这个提交,看看它之前发生了什么?

当然,我可以在格式编辑提交之前检查提交并再次看到责备,但在大型项目上可能需要很多时间并且不合适。

【问题讨论】:

标签: git version-control git-blame


【解决方案1】:

我认为您正在寻找排除空格的 -w 选项。根据手册页。

在比较父版本和子版本以查找行的来源时忽略空格。

也可以排除已移动的代码。请参阅 -M 和 -C 选项。见https://git-scm.com/docs/git-blame

【讨论】:

  • 米歇尔·里格沃特,谢谢!我尝试了带有附加选项 -M 和 -w 的命令,它对我有部分帮助。我运行 git blame -wM -L 8810,+5 fileName.cpp 并运行 git blame -L 8810,+5 fileName.cpp 并查看差异。它有效
  • 但我仍然有链接问题。例如,有人替换了 LOG_INFO 上的所有 Log::Info 函数调用。在它之后,我在每一行都看到了这个带有 LOG_INFO 的提交,并且不能忽略这个提交来查看谁添加了原始日志调用
  • 看来 git hyper blame 为你解决了这个问题。 commondatastorage.googleapis.com/chrome-infra-docs/flat/… --incremental 选项也可能提供结果,但可能更难阅读。
  • 如果你喜欢 git hyper blame 那么你会很高兴知道 Git 2.23 引入了 git blame --ignore-rev ,它类似但可以说更强大。
猜你喜欢
  • 2017-11-18
  • 2015-12-30
  • 2011-07-03
  • 2011-10-27
  • 2021-01-03
  • 2013-12-20
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多