Oh Shit, Git
I find people are religious about being git cli purists and only interacting with it in this black box (the terminal). On top of that a lot of people stop learning git after add commit push pull branch and merge so concepts like rebasing and cherry picking are scary.
In this day and age we have state of the art GUI tools that change the game and allow git users to see and interact with the state of a git repository in real time. It&#x27;s a great way to demystify things like rebasing and interactive rebasing because they show you what&#x27;s happening in a modern UI designed specifically for git.
I often suggest git CLI purists to get something like git kraken and just use it as a visual dashboard. Watch what happens when you run git commands. You can see everyone else&#x27;s remote branches and have a much better idea of what&#x27;s going on than you can without it.  
I&#x27;ve worked on teams that just didn&#x27;t rebase at all and I think people are oblivious to the mess they make on branches with their chaotic merge strategies.  
These days, I tend to envision the state of the branch that I want and make that happen. It&#x27;s so easy to create a new branch before I do anything that if I think something might go south, I just hard reset to my previous state (a branch I created right before the operation)  
Gitkraken also has an undo button that handles all sorts of scenarios and I rarely click it without getting exactly what I expected.