推特按照代码行数来裁员?查看自己在Git仓库中贡献的行数有多少
#头条创作挑战赛#
据说推特是按照代码行数来裁员的。怎么才能知道自己到底贡献了多少代码呢?本文来告诉你。
绝大部分公司都使用 git 来管理源代码。git 的 commit 是以行为单位的。每个 commit 可以看到添加或删除的行。通过计算全部 commit 中添加或删除的行的数量,就可以看出一个人在代码仓库中的贡献有多少。
第一步, 查看自己在 git 仓库中的贡献 。
通过 git log 命令就可以查看。只需要复制粘贴这条命令,把 <邮件地址> 替换成自己在 git 仓库中使用的地址,运行之后就可以看到输出的结果了。git log --author="<邮件地址>" --no-merges --no-show-signature --pretty=tformat: --numstat | awk "{ add += $1; subs += $2; loc += $1 - $2 } END { printf "添加的行数: %s, 删除的行数: %s, 总行数: %s ", add, subs, loc }" -
输出的结果类似下面这样的: 添加的行数: 38070, 删除的行数: 68072, 总行数: -30002
第二步, 查看公司所有人在 git 仓库中的贡献 。
这一步是确定自己在贡献排行中的位置,同样的复制粘贴脚本再运行。 git log --no-merges --no-show-signature --pretty=format:%an --numstat | awk "/./ && !author { author = $0; next } author { ins[author] += $1; del[author] += $2 } /^$/ { author = ""; next } END { for (a in ins) { printf "%10d %10d %10d %s ", ins[a] - del[a], ins[a], del[a], a } }" | sort -rn
输出的结果会按照总行数来进行排序。结果一共有 4 列,分别是总行数、添加的行数、删除的行数和名字。
下面是 Spring 框架的贡献者的排行榜的一部分: 645708 732238 86530 Arjen Poutsma 241568 472056 230488 Rossen Stoyanchev 84111 113974 29863 Thomas Risberg 82777 111029 28252 Stephane Nicoll 68131 270734 202603 Chris Beams 67341 226088 158747 Sam Brannen 67258 91641 24383 Sebastien Deleuze 40399 121776 81377 Andy Clement 35374 136229 100855 Brian Clozel 24461 229173 204712 Phillip Webb 19649 70753 51104 Keith Donald 18111 18430 319 Mark Paluch 12734 21256 8522 rstoyanchev 8837 12209 3372 Sébastien Deleuze 7472 21998 14526 Mark Pollack 6847 8155 1308 Mark Fisher 5005 9039 4034 David Syer 4895 6243 1348 Oliver Gierke 4323 4988 665 sdeleuze 4193 5355 1162 Violeta Georgieva 3916 16517 12601 Costin Leau 3385 3876 491 Scott Andrews 3265 3457 192 Ramnivas Laddad 2983 19080 16097 Jay Bryant
上面说到的做法都需要执行脚本。有没有更加容易的做法呢?可以用工具。
这里介绍两个工具。第一个是 git-quick-stats 。使用 Homebrew 就可以安装。brew install git-quick-stats
git-quick-stats 提供的功能很多,如下图所示。
git-quick-stats 的选项
第一个选项是我们需要运行的。
运行的结果如下所示。
git-quick-stats 的运行结果
git-quick-stats 所提供的结果是比较详细的,但是没有按照贡献值排序。
第二个工具是 git-fame, 使用 Ruby开发,可以通过 gem 安装。GitHub地址是 oleander/git-fame-rb。gem install git_fame
安装了之后,运行下面的命令就可以查看结果。 git fame
git-fame 的输出会更加美观一点。
git-fame 输出
git-fame 的问题在于执行起来非常慢。稍微大一点的 git 仓库,执行就会卡住,很长时间都没有结果。