To track down the commit which introduce bug is generally a quite time consuming process, in case we are not sure about faulty commit. For same, we have Git bisect command, which works on principle of binary search.  Git bisect start # starts the bisecting session
Git bisect bad # marks the current revision as bad
Git bisect good revision # marks the last known good revision  On running these, Git will checkout a revision halfway between the known “good” and “bad” versions. Post which we can run specs again and mark good or bad accordingly.  This process continues until we get the commit that introduced the bug.