git blame shows which commit last changed each line. git blame --ignore-revs keeps formatting and refactor commits from hiding the useful history.