V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
libook
V2EX  ›  git

清理废弃分支

  •  
  •   libook · 2018-06-07 11:20:48 +08:00 · 3111 次点击
    这是一个创建于 2389 天前的主题,其中的信息可能已经有所发展或是发生改变。
    工作的时候习惯每一个任务都创建一个分支,任务完结都会合并到主分支上,GitHub 的 Pull Request 机制提供了 merge 后删除分支的功能,久而久之本地就会多了很多废弃的分支,有时候会搞错名称相近的分支,于是突发奇想写了一个脚本用来清理这些分支。基本上就只保留了有效跟踪远程分支的本地分支,其他一律删除。

    注意:请确保有效代码都已推送到远程!
    注意:请确保有效代码都已推送到远程!
    注意:请确保有效代码都已推送到远程!



    依赖 Z Shell 环境,主要由于 read 指令的使用方法不同。

    代码可用,只不过缺乏优雅,后续有空还会做优化,比如代码重用和多种情况的统一处理方案。

    另外脚本中用了 git branch 的-d 参数而不是-D 参数:
    -d, --delete delete fully merged branch
    -D delete branch (even if not merged)
    所以使用脚本的时候会发现有一些没有 Merge 到其他分支的分支无法删除,这算是一个安全机制吧,确认确实可以删除可以使用 git branch -D 指令手动删除一下,或者心大的话直接把脚本里的参数改成-D。
    3 条回复    2018-06-07 19:53:23 +08:00
    mcfog
        1
    mcfog  
       2018-06-07 12:47:10 +08:00 via Android
    所以这是重新发明了 git fetch -p 么?
    akillcool
        2
    akillcool  
       2018-06-07 13:07:44 +08:00 via Android   ❤️ 1
    git remote prune origin
    libook
        3
    libook  
    OP
       2018-06-07 19:53:23 +08:00 via Android
    @mcfog
    @akillcool
    你可以试一试,功能不大一样。脚本里也用了你们说的指令,但还有代码用来处理其他情况。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2611 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 11:12 · PVG 19:12 · LAX 03:12 · JFK 06:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.