I recently found about gui tools for git. I knew about gitk and merge tools but was not aware there was a gui that could help you remember or explain some of the concepts of git one use daily. The gui can be started from the cli:
$ git gui
And it will show you something like:
I tested it on the following task. I had to filter the changes done in certain files. I had affected some of the core files where it was unacceptable and other core files where my changes were meant to be. I had to first rebase and squash all my commits with:
git rebase -i HEAD~2 // then set to `s` the commits
Then I would proceed with the `gui` tools to select ammend last commit, and could remove the hunks/changes made to certain core files. Thereby I cleaned/filtered all my commits while I was squashing them. This could have been a nightmare or longer process without the gui tools.
If say I have had the need to enter some changes I could have commit my change and then squash and follow the same pattern of operations.
Hope this helps!