道源的博客

技术为道,事业为源,愿以道化源。

0%

如何使用命令行帮助我玩转开源

你的 git 项目里是不是也遗留了很多没用的分支,一条条删除很麻烦吧,来试试一条命令删除所有无用的分支吧。

前言

我第一次提 pr 是给 ant-design-pro 改 eslint 问题,因为当时业务使用的这一个脚手架,先是提交了 issues,然后过了小一个月作者回复让我来个 pr。就此我开始了我的开源之路,但凡遇到使用问题的仓库,能改则提交 pr,不能改就提 issues,陆续给 ant-design、umi、alibaba、github 等组织提交了 pr。现在也是 umi 维护者之一。在提交 pr 的过程中发现很多有意思技术,认识很多有意思的人,难道这就是一键 3 连的快乐。

我是怎么样跟进关注的项目的

一般的 pr 流程是:

  1. fork 仓库
  2. clone fork 的仓库
  3. 基于 master 创建 fix 分支
  4. 修复问题,提交到自己 fork 的仓库
  5. 在 github 的 pull request 上提交 pr
  6. 问题解决后删除 fork 的仓库。

不过这样有一个弊端,就是我再提交 pr 会再走一次这个流程,这样的时间成本很高(clone 的时间、安装依赖的时间)。为了解决这个问题,我优化了下流程:

  1. fork 仓库
  2. clone fork 的仓库
  3. 增加一个基于原仓库的 remote
  4. 基于 master 创建 fix 分支
  5. 删除 remote 指向自己仓库的 master 分支
  6. pull 原仓库的 master 分支
  7. 修复问题,提交到自己 fork 的仓库
  8. 在 github 的 pull request 上提交 pr
  9. 问题解决后删除解决问题的分支
  10. 有新问题了就更新下原仓库的 master 分支,然后基于这个分支创建一个分支重复 pr 流程。

画了个流程图:

经常 pr 遇到的一些问题和解法

重复的 remote 操作

每次 pr 都会有 clone 仓库、添加 remote 这个操作。虽然我已经很熟练了,但是还是想偷懒,于是我做了一个工具来帮我完成这些操作。

就像演示图一样,再我输入 clone 的仓库后,工具会先把仓库 clone 下来、然后爬取我的 fork 仓库,拿到原仓库连接并加入 remote 里。

堆积下来的分支

经常 pr 还有个问题就是 pr 合并之后 github 网页会提示你删除远程分支,顺手就操作了,但是本地分支往往就遗留下来了,久而久之就越积越多。因此我也封装了一条命令来解决这个问题。

怎么用

全局安装命令,使用tcmd激活命令面板,git 中有删除分支和 clone 仓库的功能。

1
2
3
4
5
6
7
8
9
# 安装
$ npm i -g auto-command
# 运行
$ tcmd
# 选择git
**** Please select the task to be performed **** (Use arrow keys)
❯ git
translate
fastElectron
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道