`checkout` replaced by `switch` and `restore`

Since git version 2.23.0, see changelog, all functionalities of git checkout is replaced by git restore and git switch, make git checkout obsolete.

Two new commands “git switch” and “git restore” are introduced to split “checking out a branch to work on advancing its history” and “checking out paths out of the index and/or a tree-ish to work on advancing the current history” out of the single “git checkout” command.

for example,

git checkout <commit> is replaced by git switch for

git checkout [commit] <paths> is replaced by git restore