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

Git 切换分支的完整指南

基本分支切换

1. 切换到已存在的本地分支

git checkout <branch-name>
# 或使用较新的命令
git switch <branch-name>

示例:

git checkout develop
git switch feature/login

2. 创建并切换到新分支

git checkout -b <new-branch-name>

git switch -c <new-branch-name>

示例:

git checkout -b feature/search
git switch -c hotfix/bug-123

高级分支操作

3. 切换到远程分支

# 先获取远程分支信息
git fetch origin

# 切换到远程分支(会自动创建本地跟踪分支)
git checkout --track origin/<remote-branch>
# 或简写
git checkout <remote-branch>

示例:

git fetch origin
git checkout --track origin/feature/payment

4. 基于特定提交创建分支

git checkout -b <new-branch> <commit-hash>

示例:

git checkout -b test-branch a1b2c3d

5. 切换到标签

git checkout tags/<tag-name>

示例:

git checkout tags/v1.0.0

分支切换时的注意事项

6. 处理工作目录变更

有未提交的更改:

# 暂存更改
git stash
# 切换分支
git checkout other-branch
# 恢复更改
git stash pop

丢弃本地更改:

git checkout -- .          # 丢弃所有未暂存修改
git clean -fd             # 删除未跟踪的文件和目录
git checkout <branch>     # 然后切换分支

7. 查看分支信息

git branch       # 查看本地分支
git branch -a    # 查看所有分支(包括远程)
git branch -v    # 查看分支最后提交信息

常见问题解决

8. 错误:“Your local changes would be overwritten”

解决方法:

# 选项1:提交更改
git commit -am "Save changes before switching"

# 选项2:暂存更改
git stash
git checkout other-branch
# 之后可以 git stash pop 恢复

# 选项3:丢弃更改(谨慎使用)
git reset --hard
git checkout other-branch

9. 错误:“pathspec ‘branch-name’ did not match any file(s)”

可能原因:

  • 分支不存在

  • 未获取远程分支

解决方法:

git fetch origin
git checkout -b local-branch origin/remote-branch
http://www.dtcms.com/a/127181.html

相关文章:

  • 使用Helm部署Nginx过程记录与问题解决
  • DevDocs:抓取并整理技术文档的MCP服务
  • 类型转换Java
  • 【操作系统(Linux)】——通过案例学习父子进程的线程异步性
  • C#核心学习(十五)面向对象--关联知识点(1)命名空间
  • VSCode优雅的使用debug
  • QML面试笔记--UI设计篇04交互控件
  • 虚幻基础:碰撞帧运算
  • 【13】数据结构之树结构篇章
  • AI自动化制作web和手机应用软件的利器:bolt.new
  • Python设计模式:策略模式
  • 主机协议端口安全
  • 网络问题之TCP/UDP协议
  • 【Windows自带的图片查看软件photo】
  • 回文日期2
  • Process Explorer 性能调优实战:精准定位资源泄漏与高负载进程
  • ZYNQ笔记(五):AXI GPIO 中断
  • C++指针(四)万字图文详解!
  • 【特权FPGA】之乘法器
  • P8623 [蓝桥杯 2015 省 B] 移动距离
  • go学习记录(第一天)
  • 一、TorchRec里边的输入输出类型
  • 为什么要将函数变量化?
  • django rest framework相关面试题
  • windows+cmake+vscode+NDK远程调试安卓端C++项目
  • 回文日期1
  • 泛微ECOLOGY9 记 数据展现集成 自定义开窗测试中对SQL 的IN语法转换存在BUG
  • Linux中OS的管理和进程的概念
  • 【力扣hot100题】(087)乘积最大子数组
  • LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, 字符集转码/字符集探测