【问题标题】:Git: Who has modified this line?Git:谁修改了这条线?
【发布时间】:2011-09-02 21:15:55
【问题描述】:

如果我在我的应用程序中发现错误,有时我需要知道哪些提交影响了错误源代码行。我想知道哪个是使用 Git 的最佳方法。

【问题讨论】:

    标签: git


    【解决方案1】:

    你可以使用

    git annotate filename (or)
    
    git blame filename
    

    【讨论】:

      【解决方案2】:

      我会使用git blame 命令。这几乎就是它的用途。文档应该可以帮助您入门。

      【讨论】:

      • 这会给我整个行历史还是只给我最后一个?如果该行已被多次修改,并且我想在每次修改该行时检查更改。
      【解决方案3】:

      查看影响文件 foo 第 40 行的提交:

      git blame -L 40,+1 foo
      

      +1 表示正好是一行。要查看第 40-60 行的更改,请执行以下操作:

      git blame -L 40,+21 foo
      

      git blame -L 40,60 foo
      

      第二个数字可以是用“+”指定的偏移量,也可以是行号。 git blame docs

      【讨论】:

      • 我怎样才能获得整个行历史,而不仅仅是最后一个?
      • @Pedro 你可能想要git log -L。有关更多信息,请参阅此答案:stackoverflow.com/a/19757493/2356383
      【解决方案4】:
      git blame filename
      

      是向您显示此信息的最佳命令

      【讨论】:

        【解决方案5】:

        如果您只需要最后的更改:

        git blame
        

        否则,您可以尝试使用

        自动查找有问题的更改
        git bisect
        

        【讨论】:

        • +1 表示平分。非常适合在不确切知道问题所在的情况下找出哪个提交破坏了某些东西。
        猜你喜欢
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 2019-02-23
        • 2013-01-20
        相关资源
        最近更新 更多