经验笔记:git checkout 与 git switch

Git Checkout 与 Git Switch

引言

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

git checkout

基本用法

  1. 切换分支

    sh 复制代码
    git checkout <branch>

    例如,切换到 main 分支:

    sh 复制代码
    git checkout main
  2. 创建并切换到新分支

    sh 复制代码
    git checkout -b <new-branch>

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

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

    sh 复制代码
    git checkout -- <file>

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

    sh 复制代码
    git checkout -- file.txt
  4. 切换到某个特定的提交

    sh 复制代码
    git checkout <commit_hash>

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

    sh 复制代码
    git checkout abc1234

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

高级用法

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

    sh 复制代码
    git checkout -b <new-branch> <commit_hash>

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

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

    sh 复制代码
    git checkout <commit_hash> -- <file>

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

    sh 复制代码
    git checkout abc1234 -- file.txt
  3. 查看某个提交的文件内容

    sh 复制代码
    git checkout <commit_hash> -- <file> | cat

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

    sh 复制代码
    git checkout abc1234 -- file.txt | cat

git switch

基本用法

  1. 切换分支

    sh 复制代码
    git switch <branch>

    例如,切换到 main 分支:

    sh 复制代码
    git switch main
  2. 创建并切换到新分支

    sh 复制代码
    git switch -c <new-branch>

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

    sh 复制代码
    git switch -c feature-branch
  3. 切换到远程分支

    sh 复制代码
    git switch <remote>/<branch>

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

    sh 复制代码
    git switch origin/main

高级用法

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

    sh 复制代码
    git switch -c <new-branch> <start-point>

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

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

    sh 复制代码
    git switch --discard-changes <branch>

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

    sh 复制代码
    git switch --discard-changes main

功能对比

  • git checkout

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

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

场景选择

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

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

相关推荐
じ☆冷颜〃1 天前
实分析与测度论、复分析、傅里叶分析、泛函分析、凸分析概述.
笔记·学习·数学建模·拓扑学·傅立叶分析
kobesdu1 天前
【ROS2实战笔记-19】ROS2 生命周期节点的启动顺序、状态转换陷阱与热备方案
java·前端·笔记·机器人·ros·ros2
谙弆悕博士1 天前
快速学C语言——第16章:预处理
c语言·开发语言·chrome·笔记·创业创新·预处理·业界资讯
handler011 天前
UDP协议与网络通信知识点
c语言·网络·c++·笔记·网络协议·udp
sheeta19981 天前
LeetCode 每日一题笔记 日期:2026.05.13 题目:1674. 使数组互补的最少操作次数
笔记·算法·leetcode
叁散1 天前
实验项目1 LTE通信原理与应用
笔记·其他
AOwhisky1 天前
Docker 学习笔记:镜像分发、容器运行与资源限制
笔记·学习·docker
TANGLONG2221 天前
【C++】继承详解——基类/派生类、作用域、默认函数、菱形继承(超详细)
java·c语言·c++·经验分享·笔记·ajax
霜落花轻扬1 天前
git相关命令
git
木木_王1 天前
嵌入式学习 | STM32裸板驱动开发(Day01)入门学习笔记(超详细完整版|点灯实验 + 库函数代码 + 原理全解)
linux·驱动开发·笔记·stm32·学习