This is small refinements (except 4/4). 2/4 relaxes the 'in-progress' check for bisect because switching while bisecting is normal _and_ safe. 3/4 makes 'switch -d' completion much more useful. 4/4 adds the last missing piece in 'git restore', records new files in worktree as i-t-a. Still on the agenda (but may take some or much more time to do): - submodule support in 'git restore' - handling "git restore *.c" where *.c is expanded by shell One item I have a patch for but decided not to send, is to imply --detach in 'git switch' if you are already in detached HEAD mode and want to switch to a non-branch. In other words, it behaves just like git-checkout. No more protection is needed in that case because you're in trouble already if you don't know about detached HEAD. And if you do know, then adding '-d' is just annoyance. But I don't find myself using it and I'm a pretty heavy detached user. So while it kinda makes sense to do, I don't think it's worth the complication. Nguyễn Thái Ngọc Duy (4): t2027: use test_must_be_empty switch: allow to switch in the middle of bisect completion: disable dwim on "git switch -d" restore: add --intent-to-add (restoring worktree only) Documentation/git-restore.txt | 7 +++ builtin/checkout.c | 82 +++++++++++++++++++++++++- contrib/completion/git-completion.bash | 4 ++ t/t2070-restore.sh | 22 ++++++- 4 files changed, 109 insertions(+), 6 deletions(-) -- 2.22.0.rc0.322.g2b0371e29a