Git:谁修改了这一行?

60

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

5个回答

61

要查看影响文件'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 文档


我怎样才能获取整个行的历史记录,而不仅仅是最后一条? - Pedro
1
@Pedro,你可能想要使用git log -L命令。有关更多信息,请参见此答案:https://dev59.com/9Goy5IYBdhLWcg3wnPSJ#19757493 - ahaurat

42

我会使用git blame命令。这正是它的用途。文档可以帮助你入门。


1
这会给我整个行的历史记录还是只有最后一个? 如果这行被修改了多次,我想要检查每次修改的更改怎么办? - Yash Kalwani
@YashKalwani 只显示最后一次更改。你可能想要使用 git log - undefined

9
git blame filename

这是显示此信息的最佳命令


9

如果你只需要最后一次更改:

git blame

否则,您可以尝试使用自动方式查找有问题的更改:
git bisect

1
+1 用于二分查找。在不确定出错原因的情况下,可以尝试找出哪个提交导致了问题。 - vcsjones

1
你可以使用

标签


git annotate filename (or)

git blame filename

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接