Rebase

git rebase helps maintain repository's homeostasis or in other words helps maintain history clean.

git rebase -i 95eeee3^
-i begins an interactive rebasing session

Interactive mode will bring the following list of commands:

p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit

95eeee3 is the commit we want to modify
we can find it by doing:
git log
^ means start modifying just before the specified commit

example
To modify a commit message and update some files:

git rebase -i 95eeee3^
change pick to edit (or just e)
git reset HEAD~
update some files …
git add -A .
git rebase --continue
force push the change to the remote
git push --force