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

经验笔记:git checkout 与 git switch

Git Checkout 与 Git Switch

引言

在使用 Git 进行版本控制时,git checkoutgit switch 是两个常用的命令,用于分支管理和文件恢复。虽然它们有一些相似之处,但各自的功能和使用场景有所不同。本文将详细介绍这两个命令的用法、区别和实际应用示例,帮助你更好地理解和使用它们。

git checkout

基本用法

  1. 切换分支

    git checkout <branch>
    

    例如,切换到 main 分支:

    git checkout main
    
  2. 创建并切换到新分支

    git checkout -b <new-branch>
    

    例如,创建并切换到 feature-branch

    git checkout -b feature-branch
    
  3. 恢复工作区中的文件

    git checkout -- <file>
    

    例如,恢复 file.txt 到最近一次提交的状态:

    git checkout -- file.txt
    
  4. 切换到某个特定的提交

    git checkout <commit_hash>
    

    例如,切换到某个特定的提交 abc1234

    git checkout abc1234
    

    这将使你的工作区处于“分离头指针”(detached HEAD)状态。

高级用法

  1. 创建新分支并切换到特定的提交

    git checkout -b <new-branch> <commit_hash>
    

    例如,从提交 abc1234 创建并切换到 feature-branch

    git checkout -b feature-branch abc1234
    
  2. 恢复文件到特定的提交

    git checkout <commit_hash> -- <file>
    

    例如,恢复 file.txt 到提交 abc1234 的状态:

    git checkout abc1234 -- file.txt
    
  3. 查看某个提交的文件内容

    git checkout <commit_hash> -- <file> | cat
    

    例如,查看提交 abc1234file.txt 的内容:

    git checkout abc1234 -- file.txt | cat
    

git switch

基本用法

  1. 切换分支

    git switch <branch>
    

    例如,切换到 main 分支:

    git switch main
    
  2. 创建并切换到新分支

    git switch -c <new-branch>
    

    例如,创建并切换到 feature-branch

    git switch -c feature-branch
    
  3. 切换到远程分支

    git switch <remote>/<branch>
    

    例如,切换到远程仓库 originmain 分支:

    git switch origin/main
    

高级用法

  1. 创建并切换到新分支,从某个起点开始

    git switch -c <new-branch> <start-point>
    

    例如,从 main 分支创建并切换到 feature-branch

    git switch -c feature-branch main
    
  2. 强制切换分支并丢弃未提交的更改

    git switch --discard-changes <branch>
    

    例如,强制切换到 main 分支并丢弃未提交的更改:

    git switch --discard-changes main
    

功能对比

  • git checkout

    • 多用途命令,可以切换分支、恢复文件、切换到特定提交等。
    • 功能丰富,但命令复杂,容易混淆。
    • 适用于需要多种操作的场景。
  • git switch

    • 专门用于分支切换的命令。
    • 功能单一,命令简单,易于记忆和使用。
    • 适用于只需要切换分支的场景。

场景选择

  • 初学者:建议使用 git switch,因为它功能明确,命令简单,不容易出错。
  • 高级用户:可以根据具体需求选择合适的命令。如果你需要恢复文件或切换到特定提交,使用 git checkout;如果只需要切换分支,使用 git switch

希望这篇经验笔记对你有帮助!


http://www.kler.cn/a/404489.html

相关文章:

  • 51c嵌入式~IO合集2
  • 面试小结(一)
  • Bug:引入Feign后触发了2次、4次ContextRefreshedEvent
  • 40分钟学 Go 语言高并发:并发下载器开发实战教程
  • 大数据新视界 -- Impala 性能优化:量子计算启发下的数据加密与性能平衡(下)(30 / 30)
  • Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
  • 【智谱开放平台-注册_登录安全分析报告】
  • 单体架构和微服务架构到底哪个好?
  • 怎么编译OpenWrt镜像?-基于Widora开发板
  • Linux驱动编程 - kmalloc、vmalloc区别
  • 多线程中Callable和Runnable的对比
  • 力扣 LeetCode 106. 从中序与后序遍历序列构造二叉树(Day9:二叉树)
  • MySQL45讲 第二十八讲 读写分离有哪些坑?——阅读总结
  • 第 24 章 -Golang 性能优化
  • 【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)
  • 【GPTs】Front-end Expert:助力前端开发的智能工具
  • 设计模式之 组合模式
  • PCIe总线设计
  • Java中的TreeSet集合解析
  • 计算机毕设-基于springboot的多彩吉安红色旅游网站的设计与实现(附源码+lw+ppt+开题报告)
  • JMeter 性能测试计划深度解析:构建与配置的树形结构指南
  • k8s1.30.0高可用集群部署
  • 04-转录组下游分析-标准化、聚类、差异分析
  • C++真题实战(一)[卡片问题]
  • 动静态库:选择与应用的全方位指南
  • .NET开源实时应用监控系统:WatchDog