当前位置: 首页 > news >正文

git `switch` 命令详解与实用示例

文章目录

  • git `switch` 命令详解与实用示例
    • `git switch` vs `git checkout`
    • `git switch` 用法
      • 1. 切换到已有分支
      • 2. 创建并切换到新分支
      • 3. 切换到上一个分支
      • 4. 切换到远程分支(自动创建本地分支并追踪远程)
      • 5. 放弃未提交的修改并切换分支
    • 总结

git switch 命令详解与实用示例

git switch 是 Git 2.23 版本(2019 年发布)引入的一个命令,用于切换分支。它的作用类似于 git checkout,但更加专注于分支管理,使 Git 操作更清晰易懂。

git switch vs git checkout

在 Git 2.23 之前,git checkout 既用于切换分支,也用于检出文件,这容易导致混淆。例如:

  • git checkout branch-name 切换分支
  • git checkout -- file.txt 丢弃文件的修改

为了解决这个问题,Git 引入了 git switch(用于切换分支)和 git restore(用于恢复文件),使命令更加直观。

git switch 用法

1. 切换到已有分支

git switch branch-name

等价于:

git checkout branch-name

示例:

git switch feature-login

切换到 feature-login 分支。

2. 创建并切换到新分支

git switch -c new-branch-name

等价于:

git checkout -b new-branch-name

示例:

git switch -c dev

创建并切换到 dev 分支。

3. 切换到上一个分支

git switch -

等价于:

git checkout -

示例:

git switch -

如果你从 main 切换到了 feature-x,执行该命令后会切回 main

4. 切换到远程分支(自动创建本地分支并追踪远程)

git switch -c local-branch-name origin/remote-branch-name

示例:

git switch -c feature-y origin/feature-y

这会基于远程 feature-y 分支创建并切换到本地 feature-y 分支。

5. 放弃未提交的修改并切换分支

如果当前分支有未提交的修改,Git 会阻止切换。你可以使用 -f 强制切换:

git switch -f branch-name

或者先用 git stash 暂存修改:

git stash
git switch branch-name
git stash pop

总结

命令作用
git switch branch-name切换到已有分支
git switch -c new-branch创建并切换到新分支
git switch -切换到上一个分支
git switch -c local-branch origin/remote-branch基于远程分支创建并切换到本地分支
git switch -f branch-name放弃修改并强制切换分支

相比 git checkoutgit switch 更加直观,推荐在分支管理中使用它。

http://www.dtcms.com/a/117783.html

相关文章:

  • 图论----拓扑排序
  • MyBatis的第三天笔记
  • VSCode使用Remote-SSH连接服务器时启动失败glibc不符合
  • Java学习——day23(反射的对象创建与方法调用)
  • Text-to-SQL技术深度解析:从理论突破到工程实践
  • Jmeter+Jenkins+Ant自动化持续集成环境搭建
  • [ctfshow web入门] web7
  • PyQt6实例_A股日数据维护工具_完整项目代码_终结章
  • Gis相关记录备忘录
  • 软件工程第五章习题
  • 15-产品经理-维护需求
  • redis 和 MongoDB都可以存储键值对,并且值可以是复杂json,用完整例子分别展示说明两者在存储json键值对上的使用对比
  • 贪心算法(16)(java)俄罗斯套娃信封问题
  • 从零到一:用Java和Spring Security构建OAuth2授权服务器
  • 【Vue-vue基础知识】学习笔记
  • 强化学习Q-Learning:DQN
  • 17-产品经理-创建发布
  • Golang 项目平滑重启
  • Python小练习系列 Vol.13:用装饰器记录函数执行时间
  • 蓝桥杯2024年第十五届省赛真题-爬山
  • 刺杀大使--bfs还是比dfs快+二分
  • 专题|MATLAB-R语言Logistic逻辑回归增长模型在互联网金融共生及移动通信客户流失分析实例合集
  • 基于Python Flask快速构建网络安全工具资源库的Web应用实践
  • 【简历全景认知2】电子化时代对简历形式的降维打击:从A4纸到ATS的生存游戏
  • Python高阶函数-filter
  • es 原生linux部署集群
  • JS 中html的document
  • MySQL学习笔记六
  • Python爬虫生成CSV文件的完整流程
  • 谷歌洽谈租赁英伟达AI服务器:算力争夺战再升级