Git责备承诺行

时间:2012-12-03 21:31:46

标签: git

GIT能否以某种方式找到在特定文件中引入特定代码行的提交?这假设自添加该行以来已有许多提交。或者这是必须在脚本中完成的事情,同时查看存在该行的文件的所有提交的git责任?

澄清

原始文件 - >已添加到文件并已提交的行 - >许多其他提交添加其他行并更改代码

4 个答案:

答案 0 :(得分:35)

您可以使用git blame -l filename从线路更改时获取SHA1哈希值。

你也可以使用--reverse:

  

- 反

     

向前走,而不是落后。这不显示出现一行的修订,而是显示一行存在的最后修订版。这需要一系列的修订,如START..END,其中指责路径存在于START。

请参阅:http://www.kernel.org/pub/software/scm/git/docs/git-blame.html

答案 1 :(得分:2)

假设线路在添加后没有改变,那么只需:

git blame <that file>然后查找您要追踪的行。

如果该行在添加后已被修改,您仍然可以git blame找出该行被更改的最后一次提交,然后git checkout <sha>~1(其中sha是原始git blame)和git blame中显示的sha再次返回该行的历史记录。

答案 2 :(得分:2)

看来你可以使用git log -L来检查文件。 例如,我想检查file.c的提交,从55到60的行:

git log -L55,60:file.c

答案 3 :(得分:2)

你可以责怪像这样的特定代码字符串。

git log -S 'THE-CODE'