用 Flutter 写了个 Mac 的 Git 多仓库管理客户端

文末付源码 ⭐️

背景

不知道大家会不会有这样的需求,一个版本需要发布好多个项目(我们做系统应用一个版本最多可能会有 20+ 个项目),每个项目都在不同的 git 仓库;发布前需要检查一下最新的提交有没有合入、发布后还需要给所有项目仓库打上发布版本的 tag;

这种方式如果手动去做,那肯定就是体力活了;一个个仓库点开操作...

自动化脚本

作为程序员怎么可以容忍这种重复性的工作呢?我就写了个 shell 脚本,可以将一行命令行操作所有的仓库;

一行命令就可以将所有仓库的最近提交日志打出来、也可以用一行命令给所有仓库打上 tag;美滋滋~

但是用了一阵子后,发现有些需求满足不了了;比如:

  1. 每次只能操作全部项目:有的版本不需要全部项目发布,所以不需要全部打 tag;
  2. 所有项目的分支只能一样:打 tag 是要基于分支的,如果不同项目分支名不一样,那就没得玩了(除非给脚本加上很多参数);
  3. 日志查看不友好:命令行窗口同时看所有仓库的最近日志实在不友好;

需求满足不了就想办法,刚好会写 Flutter,而 Flutter 也是支持桌面客户端开发的,所以就用空闲时间写了个 Mac 客户端了。

可视化桌面客户端

首页 & 多仓库一键 clone

输入对应仓库地址后,确定后到首页,点击同步按钮,即可 clone 所有仓库;

main.png

设置

settings.png

控制台日志

console.png

单个仓库切自己的分支

每个仓库可以点击切换到自己的分支;

checkout.png

多仓库一键切换分支

如果大部分仓库分支名一样,也是可以一键切换;选择仓库后,可以一键给所有仓库切到对应的分支(仓库如果没有对应分支就不会切);

branch.png

多仓库一键打 tag

目前只支持 ssh 方式的仓库打 tag

打 tag 是基于当前分支的,上面切分支的功能可以切不同分支;所以当然就支持为不同仓库的不同分支打相同的 tag 了;

tag.png

多仓库一键看最近提交日志

这个功能相当于一个辅助功能吧,有时候发布前总想确认一下代码有没有合入发布分支,如果一个个仓库去看就相当麻烦;这样勾选后,一键查看得多香。

log.png

源码

理论上支持 Windows 桌面端应该做下简单的构建配置就可以,不过我手头没有 Windows 电脑,有兴趣的同学可以动手编一个

源码仓库地址:github.com/linkaipeng/…

喜欢的来个 ⭐️ ~

猜你喜欢

转载自juejin.im/post/7101913527015145486