作为一个代码搬运工,如何应对突如其来的灵魂拷问『你今天做了什么』?
前情提要:
你的电脑正在预热,
还没有完全切换到昨天工作的那个项目的那个TAB的那个文件,
还不记得昨天应该要继续写的那行代码的位置,
还不知道下班途中想到的那个解决BUG的思路是不是可行,该写在哪里。
你正在努力想起,电脑的CPU和你的CPU正在进入繁忙模式……
开早会哪开早会啦
『说说你昨天做了什么。』
什么?我这不刚睡醒没多久吗?
昨天又忙碌了一天,差点赶不上最后一班地铁。
那我做了什么呢?刚刚还在繁忙中的CPU现在已经是 96% , 大脑一片恐怕。
记不得昨天我做了啥,那基本 === 你昨天啥也没做。
工作多年的你知道好记性不如烂笔头,知道应该把自己每天的工作弄个文档,对自己和领导有个交代。
但沉迷于BUG无法自拔的你根本没时间弄这些你觉得没什么*用的东西。
好在你已工作多年,知道 git 是个好东西,上面为你记录着你每次提交解决的问题。
看到开会的人差不多已经到齐了。
你赶忙打开你的图形化 git 工具,查看提交日志,
却突然发现你还得看一下昨天的提交记录截止从哪一条开始,
充斥着其他成员的提交记录让你眼花缭乱,迷失自我。
你大约已经看到你昨天提交的那么几条记录,
可是你又在想,
我该如何立刻记住?
如何描述?
待会要不要说得很仔细?
说得很少会不会被认为工作在鬼混?
有没有什么潜规则?
开会的人似乎就只差你没到了。
你告诉自己,『就这样吧,能记几个记几个』。
一场会下来,
你似乎觉得,
一代程序员工程师,记性好坏无所谓,
关键是不能每天像机器一样复制做着『看提交记录』『找提交日期』『排除他人提交』这样的事情。
于是你打算做些什么……
你想随手撸一个查看项目的提交日志,并进行简单的格式化的工具。
你知道, git 提供的 log 过滤及格式化参数,加上 linux 三剑客,
已经可以灵活的完成和统计任何形式的显示效果。
你也知道,你**就是个 linux 渣渣,别动不动说什么三剑客,并且 windows 上也没那么容易玩。
拿着 nodejs 这把宝刀,你说你要弄一个各平台都能方便使用的轮子。
你想了想应该取什么名字,
每天都做的事, 好像是 day, 与 git 息息相关, 那就叫 gitday 或者 gd 吧。
你感觉太长,还有点嫌弃名字老土。
但你没有办法,奈何自己没有文化。
你想多写点什么?但回过神来一想,大家都很忙,废话不要太多,更不要太水,还有这东东也不是什么值得浪费大家时间的东西,实现思路和过程什么的就算了。
gitday
以作者及日期查询 git提交日志, 并进行统计和格式化.
体验或安装
npx github:wll8/gitday --help
npm i -g wll8/gitday && gitday --help
参数:
name=@all
作者名称, 默认为当前项目配置的名称, @all 不限
date=@all|@-1...
查询日期, 默认为今天, @all 不限; @-1 前1天; @-2 前2天...
format=line|yaml|json
输出格式
--help
显示使用方法
--all
是否忽略所有条件, 查询所有
--partake
忽略所有条件, 查询所有成员的参与度
--complete
以完整模式输出, 显示完成的 commitId, 且不排除 Merge 类型的提交
示例:
gitday # 今天你做了什么?
gitday name=小明 # 今天小明做了什么?
gitday date=@-1 # 昨天你做了什么?
gitday name=小明 date=@-1 # 昨天小明做了什么?
gitday date=@-1 format=yaml # 使用 yaml 格式输出, 昨天你做了什么?
gitday name=小明 date=2019-09-09 # 2019-09-09 小明做了什么?
gitday --all --partake # 统计这个项目中所有开发人员的参与情况?
查看今天的提交记录
$> qs gitday
1: 14:36 doc: 体验或安装
2: 14:01 fix: #!/usr/bin/env node
3: 13:50 feat(cli): gitday
统计项目中所有开发人员的参与情况, * 号马赛克~
可以清晰看到, 排在第一的成员开发了至少两个月,提交了 339 次代码。
$> gitday --all --partake
x** <da***@gmail.com> | day: 55 | commit: 339:
h**** <f******@gmail.com> | day: 16 | commit: 38:
w** <wa******o@******.com> | day: 2 | commit: 7:
S****** <s******@163.com> | day: 1 | commit: 1:
wl** <x***@gmail.com> | day: 1 | commit: 4:
ch**** <wa**@****.com> | day: 1 | commit: 1:
k** <zh**@******.com> | day: 5 | commit: 7:
Y** <1522****@163.com> | day: 4 | commit: 5:
注
- 请在 git 仓库目录下使用本程序。
- 本程序使用 git log 的信息进行分析, 不会能你的项目产生任何影响。
- 没有第三方依赖。
代码地址
- https://github.com/wll8/gitday
- 公众号回复 gitday 查看源码