Your source code should describe what the program should do today. It should not contain all historical artifacts about your source code, as it'll grow to big and unmanageable then. Instead, use Git to store temporal information, data that is about change and reasoning behind it. Git is basically a timeline, instead of hard facts of today.
That's why it makes sense to describe the background and reasoning behind a change in a Git commit, instead of inside your source files as comments.