before starting a rebase, create a tag where you start from, so you can easily reference the original code (you can delete the tag when the rebase is done). Also keep gitk --all (or some other gui to view commits) open during the rebase to easily see "where" you are
I tend to use "git push origin HEAD:branchname" to push the current head to a branch on the remote (also works with others refs, not just HEAD) instead of just "git push"