With what we’ve seen so far, you should be shielded against mishap’s and errors when working with your history.

Still, we’ll explore additional real use-cases. So far we’ve seen how to undo commits and undo resets, but we can undo a lot more, such as merges, rebases and pulls. Yes, pulls!

The only thing we need for that is to understand how each such operation works, that is, what it does to the HEAD and branch tips. Then it will all flow naturally from there.

For ongoing changes, commits and resets, we covered these already. Let’s now focus on merges, rebases and pulls.