提升分支操作安全性:为什么你应该开始使用 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> 命令可以快速切换到目标分支。

#将当前分支切换到名为 main 的分支
git checkout main 

2.创建新分支

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

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

3.撤销修改

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

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

4.切换提交版本

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

# 将切换到提交 ID 为 abc123 的版本
git checkout abc123 

5.还原文件到指定版本

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

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

git switch命令

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

1.分支切换

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

# 将当前分支切换到名为 main 的分支。
git switch main 

2.创建新分支

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

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

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

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

# 切换到上次访问的分支。
git switch -

写在最后

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

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

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值