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

删除远程已经不存在但本地仍然存在的Git分支

1. 获取远程分支列表

首先,确保你获取了远程仓库的最新分支信息:

git fetch -p

-p 参数会自动清理本地仓库中那些在远程已经被删除的分支的引用。

2. 查看本地分支与远程分支的对比

运行以下命令来查看哪些本地分支没有对应的远程分支:

git branch -vv

输出示例:

main abc1234 [origin/main] Commit message

dev def5678 [origin/dev] Commit message

feature cde9012 [stale] Commit message

其中 [stale] 表示该分支在远程已经不存在。

这里 :gone 也表示不存在:

使用以下命令查看所有本地分支和远程分支:

git branch -a

 

3. 手动删除单个或多个本地分支

如果你只想删除某些特定的本地分支(例如 feature),可以使用以下命令:

git branch -d feature

如果分支没有合并过,Git 会提示你使用 -D 来强制删除:

git branch -D feature

4. 自动删除所有远程已删除的本地分支

如果你想一次性删除所有远程已经删除的本地分支,可以使用以下命令:

git for-each-ref --format='%(refname:short) %(upstream:track)' refs/heads | awk '$2 == "[gone]" {print $1}' | xargs git branch -d

这个命令的作用是:

  • 列出所有本地分支及其跟踪状态。
  • 使用 awk 过滤出那些远程分支已经不存在的本地分支。
  • 然后通过 xargs 删除这些分支。

注意:如果你希望强制删除未合并的分支,请将 git branch -d 替换为 git branch -D。 

 

http://www.xdnf.cn/news/950671.html

相关文章:

  • AWS EKS 集群日志上报观测云实践
  • 1.6 http模块nodejs 对比 go
  • 【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练
  • 安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(质检)
  • 浅谈 ST 表(Sparse Table,稀疏表)
  • 基于ffmpeg+sdl的audio player
  • uniapp 实现腾讯云IM群文件上传下载功能
  • 基于亚博K210开发板——WiFi 模块联网
  • C语言 学习 文件操作(开关,读写,定位,大小)操作 2025年6月8日12:19:24
  • C语言 学习 模块化编程 2025年6月9日19:39:17
  • 论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
  • 触发DMA传输错误中断问题排查
  • Redis哨兵模式以及主从
  • LLM基础5_从零开始实现 GPT 模型
  • CMIP6气候模式资料概览
  • 免费在线PDF转图片工具
  • gephi绘制网络拓扑图:批量给节点着色
  • nginx安装和部署
  • 免费PDF转图片工具
  • NVIDIA CUDA 技术详解:开启 GPU 并行计算的大门
  • CocosCreator 之 JavaScript/TypeScript和Java的相互交互
  • 创建型模式-单例模式
  • Python网页自动化Selenium中文文档
  • 24.解释器模式:思考与解读
  • 从零手写Java版本的LSM Tree (四):SSTable 磁盘存储
  • 9个数据分析指令为工作赋能
  • 升级背后:CANOPEN转MODBUS TCP技术如何实现精准控制?
  • 精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
  • SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
  • C# 表达式和运算符(求值顺序)