你的 git 项目里是不是也遗留了很多没用的分支,一条条删除很麻烦吧,来试试一条命令删除所有无用的分支吧。
前言
我第一次提 pr 是给 ant-design-pro 改 eslint 问题,因为当时业务使用的这一个脚手架,先是提交了 issues,然后过了小一个月作者回复让我来个 pr。就此我开始了我的开源之路,但凡遇到使用问题的仓库,能改则提交 pr,不能改就提 issues,陆续给 ant-design、umi、alibaba、github 等组织提交了 pr。现在也是 umi 维护者之一。在提交 pr 的过程中发现很多有意思技术,认识很多有意思的人,难道这就是一键 3 连的快乐。
我是怎么样跟进关注的项目的
一般的 pr 流程是:
- fork 仓库
- clone fork 的仓库
- 基于 master 创建 fix 分支
- 修复问题,提交到自己 fork 的仓库
- 在 github 的 pull request 上提交 pr
- 问题解决后删除 fork 的仓库。
不过这样有一个弊端,就是我再提交 pr 会再走一次这个流程,这样的时间成本很高(clone 的时间、安装依赖的时间)。为了解决这个问题,我优化了下流程:
- fork 仓库
- clone fork 的仓库
- 增加一个基于原仓库的 remote
- 基于 master 创建 fix 分支
- 删除 remote 指向自己仓库的 master 分支
- pull 原仓库的 master 分支
- 修复问题,提交到自己 fork 的仓库
- 在 github 的 pull request 上提交 pr
- 问题解决后删除解决问题的分支
- 有新问题了就更新下原仓库的 master 分支,然后基于这个分支创建一个分支重复 pr 流程。
画了个流程图:
经常 pr 遇到的一些问题和解法
重复的 remote 操作
每次 pr 都会有 clone 仓库、添加 remote 这个操作。虽然我已经很熟练了,但是还是想偷懒,于是我做了一个工具来帮我完成这些操作。
就像演示图一样,再我输入 clone 的仓库后,工具会先把仓库 clone 下来、然后爬取我的 fork 仓库,拿到原仓库连接并加入 remote 里。
堆积下来的分支
经常 pr 还有个问题就是 pr 合并之后 github 网页会提示你删除远程分支,顺手就操作了,但是本地分支往往就遗留下来了,久而久之就越积越多。因此我也封装了一条命令来解决这个问题。
怎么用
全局安装命令,使用tcmd激活命令面板,git 中有删除分支和 clone 仓库的功能。
1 | 安装 |