How to find when changes was made to the repository?
Bottom line: you should use git bisect
for this task.
In depth explain:
If you wish to search manually throw the log as you did you can use the git log --cc
(git v>2.X). It will show you list of changes in each commit
You can of course dump it to file and search the file content or screen.

But what to do if i have too many commit to go over them manually?
This is where git bisect
comes to rescue. git bisect
search over your repos and based upon an given exit code it can determine which commit started the "problem".
You can use bisect manually or pass it a script to automate the process with a script. (See bisect run below)
The bisect command does a binary search through your commit history to help you identify as quickly as possible which commit introduced an issue.
Let’s say you just pushed out a release of your code to a production environment, you’re getting bug reports about something that wasn’t happening in your development environment, and you can’t imagine why the code is doing that. You go back to your code, and it turns out you can reproduce the issue, but you can’t figure out what is going wrong.
You can bisect the code to find out.
First you run git bisect start to get things going, and then you use git bisect bad to tell the system that the current commit you’re on is broken. Then, you must tell bisect when the last known good state was, using git bisect good [good_commit]...
Bisect run
If you have a script that can tell if the current source code is good or bad, you can bisect by issuing the command:
git bisect run my_script arguments
Note that the script (my_script in the above example) should exit with code 0 if the current source code is good/old, and exit with a code between 1
and 127
(inclusive), except 125
, if the current source code is bad/new.
Any other exit code will abort the bisect process.
The special exit code 125
should be used when the current source code cannot be tested. If the script exits with this code, the current revision will be skipped (see git bisect skip above).
125
was chosen as the highest sensible value to use for this purpose, because 126
and 127
are used by POSIX shells to signal specific error status (127
is for command not found, 126
is for command found but not executable—these details do not matter, as they are normal errors in the script, as far as bisect run is concerned).
Here is a graphical luustartion on it works
http://www.effectiveperlprogramming.com/wp-content/uploads/bisect1.png

Here is a sample code in one of my guthub repos to see how you use it
