Reputation: 5850
I want to find out in which commit did I add the code given below:
if (getListView().getChildCount() == 0)
getActivity().findViewById(android.R.id.empty).setVisibility(View.VISIBLE);
How do I achieve this?
Upvotes: 159
Views: 71898
Reputation: 2201
If code is being maintained in Git
repository and intellij
IDE along with Git plugin is being used to browse the code then i have found the following way very intuitive:
intellij
Following screenshots are for the references:
Upvotes: 4
Reputation: 2201
git log -S "mention here line of code" [file-path]
For example:
git log -S "First line" test.txt
Providing the file name with its path is obvious because, most of the time, we want to know who introduced a particular code segment in a particular file.
Upvotes: 45
Reputation: 3336
git log -S searchTerm
gives you the commits in which the search term was introduced.
Upvotes: 159
Reputation: 8829
There is something quicker than issuing a blame on the full file. If the line is ${lineno}
and the file is ${filename}
you can:
git blame -L ${lineno},${lineno} ${filename}
Example:
git blame -L 2,2 test.txt
Upvotes: 55
Reputation: 12526
Run git blame
on the file. It'll show you the commit ID, the date and time, and who committed it- for each line. Then just copy out the commit identifier and you can use it in git log <commit>
or git show <commit>
.
For example, I've got a file, called test.txt, with lines added on different commits:
$ cat test.txt
First line.
Second line.
Running the 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.
The first bit is the commit ID, then name, then date, time, time zone, and finally the line number and line contents.
Upvotes: 104