Emacs user here. I ind the undo tree neat, but in practice it's a bit finicky sometime unreliable (as in losing history / not being able to undo).
I find IntelliJ local history https://www.jetbrains.com/help/idea/local-history.html , infinitely more reliable and useful. Some time I'll switch to IntelliJ for a second just so it snapshot my project then go back Emacs. The history is preserved between app restarts and over multiple days. It end up being like a parallel to git it some ways. Not replacement for git, but a very nice addition.
IDEA's Local History looks nice! I'll check it out next time I work with one of JetBrains' IDEs.
But on that note, undo-tree can preserve history too! Not sure how reliable it is - I never used it, and some Reddit threads from two years ago suggest there are bugs, but then there was a bunch of undo-tree releases in 2020, so maybe it got fixed.
Starting points for further research: undo-tree-auto-save-history (variable), undo-tree-history-directory-alist (variable), undo-tree-save-history (command). Possibly relevant: undo-tree-limit, undo-tree-strong-limit, undo-tree-outer-limit (variables).
Personally, I love the visualization (undo-tree-visualize) - but what blew my mind was two accidental discoveries recently. One: t toggles displaying timestamps (how long ago an undo point was applied?), and two: d toggles diffs - a small buffer showing you, in diff format, the changes between current point and previous points in undo history, as you navigate through the tree!
I find IntelliJ local history https://www.jetbrains.com/help/idea/local-history.html , infinitely more reliable and useful. Some time I'll switch to IntelliJ for a second just so it snapshot my project then go back Emacs. The history is preserved between app restarts and over multiple days. It end up being like a parallel to git it some ways. Not replacement for git, but a very nice addition.