There are some good tips there, like using GPG. I am definitively going to get that set up for my project.
Now, I always merge with no fast-forward because it creates a commit for the merge that you can revert.
git merge --no-ff
Then, I always pull with rebase... That will apply your changes on top of the remote ones. It may lead to conflicts but it leads to a log with less branches. git pull --rebase
The merge/diff tool I use is p4diff, which comes with P4V (Perforce visual client) and is free.To explore the git log, I use tig. https://github.com/jonas/tig
It is a curses interface to git. Screenshot: https://atlassianblog.wpengine.com/wp-content/uploads/tig-2....