Git 新手必读:为何新版本推荐使用 Switch 而非 Checkout 进行分支切换

引言

在版本控制系统 Git中,分支管理是开发流程中不可或缺的一部分,而git checkoutgit switch正是实现分支切换这一核心操作的两大工具。尽管两者在功能上有一定的相似性,特别是在创建和切换分支时,但Git在2.23版本引入git switch的目的正是为了改善用户体验,提高命令的语义清晰度和安全性。

为什么推荐使用 git switch 而非 git checkout 进行分支切换呢

  1. 明确的目的性:

    • git checkout 命令原本用于完成三个不同的任务:切换分支、检出某个特定提交或者恢复工作目录文件。这种多功能性有时会导致混淆,特别是对于新手用户。
    • git switch 命令专注于分支切换这一单一任务,使得意图更加清晰。
  2. 避免意外修改:

    • 在旧版 git checkout 中,如果不小心在工作目录中有未暂存改动的情况下切换分支,可能会丢失这些改动,因为 Git 会自动重置工作目录到目标分支的状态。
    • git switch 默认不会允许在有未提交更改的情况下切换分支,除非显式加上 -m--merge 参数来尝试合并本地更改,或者 -f--force 参数强制覆盖。
  3. 一致性与用户体验:

    • git switchgit restore 命令是在 Git 2.23 版本后引入的,它们分别负责分支切换和文件还原,这使得 Git 的命令集更加一致和易于理解。
    • 用户体验得到了改善,因为开发者不需要记忆 git checkout 的各种行为差异,而是可以根据命令名字直观地了解其功能。
  4. 简化命令行选项:

    • 创建并切换分支的操作,之前需要用 git checkout -b 实现,现在可以直接通过 git switch -c 完成,二者功能相同,但是后者更加符合命令逻辑。
  5. 友好错误提示:

    • git switch在处理不可行的分支切换时,提供的错误信息更加清晰和友好,可以帮助开发者更快识别问题并采取正确的行动。

总结来说,git switch 是为了提升易用性和减少潜在错误而推出的专门用于分支切换的新命令,它旨在提供一种更为安全、更专注且更易于理解的方式来管理 Git 分支。

应用场景

git checkout命令

git checkout 是一个全能型命令,过去不仅用于切换分支,还包括恢复工作目录文件到特定版本以及创建新分支并立即切换到该分支等功能。例如:

1.分支切换

使用 git checkout <branch-name> 命令可以快速切换到目标分支。

bash 复制代码
#将当前分支切换到名为 main 的分支
git checkout main 

2.创建新分支

使用 git checkout -b <new-branch-name> 命令可以快速创建并切换到新分支。

bash 复制代码
#将创建一个名为 feature-branch 的新分支,并立即切换到该分支
git checkout -b feature-branch 

3.撤销修改

有时候我们可能会误修改了某些文件,需要将其还原到之前的状态,这时候就可以使用 git checkout 命令来撤销修改。使用 git checkout -- <file> 命令可以将指定文件还原到最近一次提交的状态。

bash 复制代码
# 将还原 index.html 文件到最近一次提交的状态
git checkout -- index.html 

4.切换提交版本

使用 git checkout <commit-id> 命令可以切换到指定的提交版本。

bash 复制代码
# 将切换到提交 ID 为 abc123 的版本
git checkout abc123 

5.还原文件到指定版本

有时候我们可能需要将某个文件还原到指定的提交版本,而不影响其他文件的状态。 使用 git checkout <commit-id> -- <file> 命令可以将指定文件还原到指定的提交版本。

bash 复制代码
# 将 index.html 文件还原到提交 ID 为 abc123 的版本
git checkout abc123 -- index.html 

git switch命令

git switch 是一个新引入的命令,用于切换分支。与传统的 git checkout 相比,git switch 更加专注于分支切换操作,具有更清晰明了的命令用法。

1.分支切换

使用 git switch <branch-name> 命令可以快速切换到目标分支。

bash 复制代码
# 将当前分支切换到名为 main 的分支。
git switch main 

2.创建新分支

使用 git switch -c <new-branch-name> 命令可以快速创建并切换到新分支。

bash 复制代码
# 将创建一个名为 feature-branch 的新分支,并立即切换到该分支。
git switch -c feature-branch 

3.切换到上次访问的分支

有时候我们可能需要快速切换到上次访问的分支,而不需要记住分支名。使用 git switch - 命令可以快速切换到上次访问的分支。

bash 复制代码
# 切换到上次访问的分支。
git switch -

写在最后

通过使用 git switch 而非 git checkout 进行分支切换,我们可以提升分支操作的清晰度和安全性。作为新手,建议尽早熟悉并掌握新版本推荐的分支切换命令,以提高代码管理的效率和质量。

喜欢的话帮忙点个赞 + 关注吧,将持续更新 Git 相关的文章,还可以关注我的公众号 梁三石FE ,感谢您的关注~

相关推荐
夕水5 分钟前
这个提升效率宝藏级工具一定要收藏使用
前端·javascript·trae
会飞的鱼先生19 分钟前
vue3 内置组件KeepAlive的使用
前端·javascript·vue.js
斯~内克32 分钟前
前端浏览器窗口交互完全指南:从基础操作到高级控制
前端
Mike_jia1 小时前
Memos:知识工作者的理想开源笔记系统
前端
前端大白话1 小时前
前端崩溃瞬间救星!10 个 JavaScript 实战技巧大揭秘
前端·javascript
loveoobaby1 小时前
Shadertoy着色器移植到Three.js经验总结
前端
Rabbb1 小时前
C# JSON属性排序、比较 Newtonsoft.Json
后端
蓝易云1 小时前
在Linux、CentOS7中设置shell脚本开机自启动服务
前端·后端·centos
浩龙不eMo1 小时前
前端获取环境变量方式区分(Vite)
前端·vite
一千柯橘1 小时前
Nestjs 解决 request entity too large
javascript·后端