2024年欧洲杯直播_免费在线观看NBA高清直播-24直播吧

怎样让你的 GitHub 365 天都保持全绿? - 知乎

怎样让你的 GitHub 365 天都保持全绿? - 知乎

  写这篇文章的缘由来自看到了知乎上的一个问题——在 GitHub 上保持 365 天全绿是一种怎样的体验?

  大家可能有的不明白啥意思啊,这个绿指的是就是 GitHub 的 Contribution,如果你每天都提交代码到 GitHub,至少一次 commit,那么 GitHub 就会在你当天对应的 Contribution 格子上点上绿色,比如我的就是这样子:

  因为我经常在 GitHub 上提交代码,所以我的 Contribution 页面就显示为绿色,commit 多的就深,少的就浅,灰色的就是当然没有任何代码提交的。

  所以这个问题问的就是,每天都在 GitHub 上提交代码是什么体验,也就是 365 天每天一天不落地撸代码是什么体验?

  然后有一个回答看得我笑出声: 曾经保持了200多天全绿,但是冷落了女朋友,一直绿到现在。

  原回答如下:

  这哥们真的是太秀了,秀到我实在忍不住给他默默点了个赞...

  不过咱们还是言归正传啊,说回这个问题。

  其实说实话真的保持 365 天全绿真的是一件很难的事情,每周都会有周末吧,周末得陪女朋友吧?什么,你没有女朋友,那忽略这一条。

  那即使没有女朋友,一年不得有几天是过年过节的,还撸啥代码啊?即使不是逢年过节,那也总有几天状态不好或者生病的吧,强如铁人那坚持 365 天天撸代码也是够神的。

  不过我还真见过几个,实打实的大神,比如 Taylor Otweel,PHP Laravel 框架的开发者,一年 8000 多次 commit,他的 Contribution 是这样的:

  这个是真的强,而且人家撸的代码质量肯定也高啊,不像我们可能改了点 README 啥的。

  但强如 Taylor Otweel,你也能看到有些天是没有贡献的,毕竟人家周末可能就真的不撸代码或者有其他的安排。

  那怎么才能做到 365 天全绿呢?

  既然人不行,那就靠机器人吧。

  GitHub 不是这两年出了个 GitHub Actions 的功能吗?这就是 CI 嘛,借助于它,我们想做到 GitHub 365 天全绿,就轻而易举了。

  到底怎么做?难不难。

  不难,可能只需要两分钟就搞定了。

  想不想知道怎么做的?想知道的接着往下看。

  这里介绍一个 GitHub 的库,地址为:https://github.com/justjavac/auto-green,借助它,咔咔几步就能搞定了。

  先说步骤。

  首先打开这个仓库,点 Use this template,注意千万不要点 Fork,不然是不生效的,如图所示:

  点了之后就是提示你用这个 Template 创建一个自己的 Git 残酷,这时候就会让你填写的的仓库名称,比如我就创建了一个名字叫做 AutoGreen 的仓库,如图所示:

  至此,已经成功了一半了。

  现在你会观察到,在 Actions 这个选项卡自动执行了一个任务。啪!很快啊,执行完了:

  执行完了你会发现这个仓库多了一次 commit,是来自 justjavac 的一次 commit:

  点进去看看,commit 的信息还叫 "a commit a day keeps your girlfriend away",啥意思?

  跟代码做好朋友,永远没有女朋友???Oh,No,不是这样的!

  commit 如图所示:

  神奇的是这次 commit 还没有任何 file change,还是个空的 commit。

  行了,不管这么多了。

  到现在就结束了吗?GitHub 以后就会天天绿了吗,当然不会绿啊,为啥啊?

  扒一扒源码看一下,打开 文件,结果如下:

  代码:

  看看这个文件,意思就是每天执行一下下面的这几行代码,比如 git 的 config、commit、push 等,就相当于模拟了一次提交。

  其中有几行代码比较有意思:

  这里就是指定远程仓库等地址,这里有几个占位符,github 的 actor 和 repository 对象,其实这些我们不用管,在运行的时候会被自动赋值为当前仓库的信息,另外还有 GITHUB_TOKEN 也是在该任务运行的时候自动添加的。

  另外还有一行代码:

  这里的 commit 操作加上了一个 选项,意思就是允许空的提交,这也就解释了上文空提交的缘由了。

  OK,但这里我们再回过头来看看配置就知道为啥不算我们的提交了:

  因为这里配置的是原作者的 GitHub 邮箱,所以这次提交当然就会算作原作者的了。

  那怎么才能让我们的绿呢?那把邮箱改成我们自己的就好了,比如我的就修改为了这样子:

  直接在 GitHub 网页上点击修改,修改好了保存就行了。

  修改完了之后我们就自动有了一次 commit,接着 Actions 还会自动触发一次 commit,最后结果如图所示:

  可以看到,最后这次 commit 已经变成我自己了。

  以后,我每天都可以自动绿了。

  (这话怎么听着这么奇怪?

  最后,原作者还预留了一个定时任务,可以使得你想绿就绿,不仅可以让你每天都绿,还能让你每小时都绿,每分钟都能绿。

  想绿就绿,其乐无穷。

  绿的方式很简单,套用原作者的介绍了,修改 yml 文件的定时配置就好了:

  计划任务语法有 5 个字段,中间用空格分隔,每个字段代表一个时间单位。

  每个时间字段的含义:

  |符号 | 描述 | 举例 | | ----- | -----------| -------------------------------------------| | | 任意值 | 每天每小时每分钟 | | | 值分隔符 | 每小时的 1 3 4 7 分钟 | | | 范围 | 每小时的 1-6 分钟 | | | 每 | 每隔 15 分钟 |

  比如修改为 ,你就能做到每小时都绿了,修改为 你就能每分钟都绿了,真舒服啊!

  注:由于 GitHub Actions 的限制,如果设置为 实际的执行频率为每 5 分执行一次,也就是每 5 分钟绿一次,也还不错嘛~

  如果你想了解更多精彩文章,欢迎关注我的公号:「崔庆才丨静觅」、「进击的Coder」

相关推荐

评论

  • 昵称 (必填)
  • 邮箱
  • 网址