【问题标题】:Git blame for deleted sectionGit责备删除的部分
【发布时间】:2020-12-12 23:13:43
【问题描述】:

我需要知道谁以及何时使用 git 删除了源文件的某些部分。不幸的是,似乎 git blame 不会直接告诉我,因为在当前版本的文件中完全没有上述部分。有什么建议吗?

【问题讨论】:

    标签: git git-blame


    【解决方案1】:

    您可以在具有特定字符串的行中找到正在更改某些内容的提交。这样,如果您知道其内容是什么,您就可以看到哪个提交删除了某行

    git log -S <string> path/to/file
    

    为了了解这些行的确切编写方式,您可以在一些非常古老的提交中查看您的文件:

    git show old-commit-hash^:src/path/to/file
    

    【讨论】:

    • 一般来说非常有用的选项。
    【解决方案2】:

    你有几个选择:

    1. 使用git log-G 选项来查找提交添加删除与已删除代码匹配的行:
      git log -G"code that was deleted"
      
      其中指定的字符串也可以是正则表达式
    2. 使用带有行范围的-L 选项来查找修改这些行的提交:
      git log -L10,20:path/to/file
      
      将列出在path/to/file 中的1020 行之间修改代码的提交
    3. -L 选项与已删除函数的名称一起使用:
      git log -Lfoo:path/to/file
      
      将列出修改 path/to/file 中的 foo 函数的提交。

    一旦您知道删除该代码的提交,您就可以轻松确定作者。

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 2020-01-25
      • 2017-04-17
      • 2011-07-03
      • 1970-01-01
      • 2016-04-21
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多