如何找出添加特定代码的提交?

时间:2013-11-09 10:54:40

标签: git git-commit

我想知道在哪个提交中添加了下面给出的代码:

if (getListView().getChildCount() == 0)
                getActivity().findViewById(android.R.id.empty).setVisibility(View.VISIBLE);

我如何实现这一目标?

5 个答案:

答案 0 :(得分:49)

在文件上运行git blame。它将向您显示每行的提交ID,日期和时间以及提交者。然后只需复制提交标识符,您就可以在git log <commit>git show <commit>中使用它。

例如,我有一个名为test.txt的文件,在不同的提交中添加了一行:

$ cat test.txt
First line.
Second line.

运行git blame

$ git blame test.txt
^410c3dd (Leigh 2013-11-09 12:00:00 1) First line.
2365eb7d (Leigh 2013-11-09 12:00:10 2) Second line.

第一位是提交ID,然后是名称,然后是日期,时间,时区,最后是行号和行内容。

答案 1 :(得分:41)

git log -S searchTerm

为您提供引入搜索词的提交。

答案 2 :(得分:37)

比在整个文件上发布指责更快。如果该行为${lineno}且文件为${filename},您可以:

git blame -L ${lineno},${lineno} ${filename}

示例:

git blame -L 2,2 test.txt

答案 3 :(得分:6)

git log -S "mention here line of code" [file-path]    

例如:

git log -S "First line" test.txt         

提供文件名及其路径是显而易见的,因为在大多数情况下,我们想知道是谁在特定文件中引入了特定的代码段。

答案 4 :(得分:0)

如果代码是在Git存储库中维护的,并且intellij IDE和Git插件被用来浏览代码,那么我发现以下方法非常直观:

  1. intellij中打开文件
  2. 转到上下文菜单-> Git->注释。
  3. 新窗口将出现,新窗口中的每一行都告诉谁提交了该行。

以下屏幕截图仅供参考:

enter image description here