This global undo/redo is a new feature that enables Real Time Collaboration which was added in JupyterLab 3.1. It is indeed sub-optimal for many use cases.
JupyterLab 3.2 allows to disable notebook-wide history tracking (see issue 10791 nad PR 10949), but with a caveat: when moving cells you may loose the undo history, which is why the setting is marked as experimental (it requires more work to be exposed or enabled by a default). To get the selective undo/redo please add:
{
"experimentalDisableDocumentWideUndoRedo": true
}
in Advanced Settings Editor
→ Notebook
, save, and reload JupyterLab (if you use it in a browser a refresh should suffice).
You can also stick with JupyterLab 3.0 if this is a deal breaker. To downgrade you can use pip:
pip install "jupyterlab<3.1"
or conda:
conda install -c conda-forge "jupyterlab<3.1"
but I would recommend sticking with JupyterLab 3.2 and trying out the new setting so you can contribute to the discussion (if you experience any problems or believe it could be improved).