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
这样的改变,小编觉得是非常合理了。Git已经存在这么多年了,依旧在不断的完善自己,可见一个好的软件真的需要很多年,才能进化成用户理想中的样子。
最后,留下新命令的文档,供大家提前学习适应。
git switch文档:https://git-scm.com/docs/git-switch/2.23.0
git restore文档:https://git-scm.com/docs/git-restore/2.23.0