BryanLeeNavigate back to the homepage

使用 `git switch` 替代 `git checkout`

Bryan Lee
June 17th, 2020 · 1 min read

从前

刚接触 git checkout 命令的时候,经常用它来切换代码分支,当然也可以用来切换到指定的 commit

1// 切换到 `develop` 分支。
2git checkout develop
3
4// 创建一个新分支,并切换到这个分支
5git checkout -b <分支名>
6
7// 切换到指定 commit
8git checkout <commit hash>

此外,还有一个功能,但我用的比较少,它可以从历史提交记录、分支记录恢复指定文件。

1git checkout [<options>] [<branch>] -- <file>

在命令敲下 git checkout 的时候,我时常会想,明明是切换分支,为什么要叫「签出」呢,对于一个强迫症来说,这件事没少让我纠结。

后来

Git 在 2.23 版本中,引入了两个新命令 git switchgit restore,用以替代现在的 git checkout

在这之前,git checkout 承担了两个方向完全不同的功能,一方面被用来切换分支,另一方面又用它恢复文件,对于新手来说,实在令人疑惑,产生了心智负担。

相比之下,新命令分工明确,职责清晰。

小记

最近因为疫情反弹的原因,开始了为期一周的 WFH,整个人状态非常差,浑浑噩噩;这篇博客也拖欠了非常久,完全没有思路。 现在自己 review 一遍,简直没眼看。后续一定会重写这篇,话起来还有 365 天就是我的生日了,回首上一次过生日,仿佛就在今天。

More articles from Bryan Lee

将 Homebrew 切换为 USTC Mirror

由于国内网络原因,有可能会使 Homebrew 在更新和安装软件时速度缓慢,所以无责任推荐使用国内镜像源。还顺手写了一个替换脚本,有需要的可以直接到页面的最下方自取。

May 30th, 2020 · 1 min read

一个奇怪的 shell 运算符 —— `>!`

意思是说,如果 zsh 在没有设置 CLOBBER 的情况下,即 `noclobber` 的状态为 `off` 时,`>!` 与 `>` 完全相同;但 `noclobber` 的状态为 `on` 时,`>` 不能重定向到已经存在的文件,但 `>!` 可以。

May 28th, 2020 · 1 min read
© 2020–2022 Bryan Lee
Link to $https://github.com/libyLink to $https://bit.ly/3CSfXii