原文来自:https://www.zhuanzhi.ai/document/116769a3f4a13e0df52d50c15e14c183
8月16日,Git社区发布了Git的新版本2.23。在该版本中,有一个特性非常引人瞩目,就是新版本的Git引入了两个新命令 git switch 和 git restore,用以替代现在的 git checkout。换言之,git checkout 将逐渐退出历史舞台。
Git社区决定这样做,是因为目前 git checkout 命令承载了太多的功能,这让新手们感到困惑。git checkout 的核心功能包括两个方面,一个是分支的管理,一个是文件的恢复。这两个核心功能,未来将由 git switch 和 git restore 分别负责。
在分支管理方面,目前切换分支以及创建分支,是使用:
git checkout <分支名> 和 git checkout -b <分支名>
有了 git switch 之后,对应的命令为
git switch <分支名> 和 git switch -c <分支名>
在文件恢复方面,新的 git restore 命令将允许你清晰地指定从哪里(--source参数)恢复到哪里(--staged/--worktree)。比如对于main.py这个文件,你想让它恢复到三个提交之前的状态,并且是工作目录和staged状态同时修改,你就可以这样做。
git restore --source HEAD~3 --staged --worktree main.py