I’m dealing with a not so clean history at work, and it’s a lot of hassle and confusion. Although, I’m always ready to reset and go with an alternative solution, for me these abandoned branches are like scrap papers. Good when you’re working on the tasks, worthless when you’re done. If an idea was really good, I’d create a patch or have a proper branch for it.

One thing about code archeology is that you’re not really interested in the diff itself, but the commit description. Which is why an issue tracker can fit that role.