【问题标题】:Git: Is there a way to look up the changes made to a specific section of a file?Git:有没有办法查看对文件特定部分所做的更改?
【发布时间】:2012-06-13 04:44:36
【问题描述】:

用例:

我发现一段我根本看不懂的代码。我想找到编写此代码的时间上下文,以及这部分代码经历的所有更改。

基本上查找此文件的历史记录,但仅查找与 [第 34 到 38 行(例如)] 相交的历史记录部分。

是否有比git log -p <file> | grep <some snippet matching mysterious code> 更有用的命令,然后返回log -p 输出查看差异中的上下文。

可悲的是,在查看我编写的代码时,我经常发现需要这种功能。

【问题讨论】:

    标签: git version-control history git-log


    【解决方案1】:

    git blame <path to file> 将为您提供带有上下文的提交列表(在该文件中的该提交点完成的更改)。阅读git help blame 了解它的所有功能。

    然后您可以使用git show <commit>:<path> 在该提交点查看整个文件或使用git diff <commit> <commit> -- <path> 查看差异

    【讨论】:

    • 嗯。好的。这有助于我找到每行最后一次编辑的时间,但这并不一定会引导我找到我正在寻找的内容。它有助于缩小我应该搜索的时间范围,但我想要一些易于使用的东西,向我展示一段特定代码经历的转换。
    • 您可以为您感兴趣的字符串 grep 归咎结果(行号 - 对于您的情况 - 不起作用,因为代码可以在历史记录中上下移动)
    • @Steven Lu ...blame 然后show(或diff)是我知道的唯一方法。
    猜你喜欢
    • 2018-10-24
    • 2020-12-09
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多