There are a couple ways of performing a git rebase, namely
* git rebase
* git rebase interactive (git rebase -i)
* git rebase --onto
I think following these videos may help and will explain it better than I can.
What is Git Rebase? [Intermediate Git Tutorial] - https://www.youtube.com/watch?v=_UZEXUrj-Ds
Squashing Git commits with Interactive Rebase -https://www.youtube.com/watch?v=7IfkL8swmFw
How to undo git rebase using git reflog. - https://www.youtube.com/watch?v=qP4i3S2hujc&t=203s