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 ,感谢您的关注~

相关推荐
学习使我快乐013 小时前
JS进阶 3——深入面向对象、原型
开发语言·前端·javascript
bobostudio19953 小时前
TypeScript 设计模式之【策略模式】
前端·javascript·设计模式·typescript·策略模式
黄尚圈圈4 小时前
Vue 中引入 ECharts 的详细步骤与示例
前端·vue.js·echarts
浮华似水5 小时前
简洁之道 - React Hook Form
前端
2401_857622667 小时前
SpringBoot框架下校园资料库的构建与优化
spring boot·后端·php
正小安7 小时前
如何在微信小程序中实现分包加载和预下载
前端·微信小程序·小程序
2402_857589367 小时前
“衣依”服装销售平台:Spring Boot框架的设计与实现
java·spring boot·后端
哎呦没9 小时前
大学生就业招聘:Spring Boot系统的架构分析
java·spring boot·后端
_.Switch9 小时前
Python Web 应用中的 API 网关集成与优化
开发语言·前端·后端·python·架构·log4j