TL;DR
The trouble with git starts when you need to use some of its advanced features, like git rebase
the command line. I am still on a happy path where I use git rebase in Github GUI when I do a feature branch merge into the master. Doing that, all commits from the feature branch are copy/pasted to master branch commits. But there are cases when you do need to update your commit. Post git rebase in depth explains it in great detail.