百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

每个开发者都应该掌握的GitHub奇技淫巧

zhezhongyun 2025-02-19 14:42 18 浏览


现在除了云技术之外,最深入码农农心估计就数Git和GitHub了。这成了每一个技术人员的日常,commit push到Github成了我们日常生活不可分割的一部分。那么,使用Github有啥奇技淫巧呢?好多人可能想知道这个。最近Github博客频道发布了GitHub市场产品经理十年开发工程师Lee Reilly的博文,给我们总结了使用GitHub中的技巧,让我们一起来学习吧。

文件模糊查询

大家可能没有注意到,GitHub提供了文件的模糊查询的。在任何仓库中都以访问它,输入要查找的文件的名称。这是一个非常有用的功能,可以帮助我们迅速发现要找文件所在。以查找Rails项目并快速寻找对schema.rb应用程序为例:

轻松浏览文件和目录

说到搜索文件, Octotree的浏览器扩展(GitHub/ovity/octotree)可以帮助我们浏览目录,并使用我们所熟悉的树状层级结构打开文件:

优点:支持与GitHub Enterprise works一起使用

注:几年前,Lee和作者有关支持GitHub Enterprise的信息。

如果要为GitHub构建浏览器扩展,并希望确保它适用于GitHub Enterprise,则可以通过加入GitHub Developer Program获得开发人员许可证。(也算一个干货小技巧)

收到新通知的警报

关于浏览器扩展主题,有一个扩展notifier-for-github (
GitHub/sindresorhus/notifier-for-github),可以在工具栏项目上的醒目图告知正在等待多少GitHub通知。如果无法正常显示,可以启用桌面通知。

它还适用于GitHub Enterprise。您要做的就是更改API接口匹配实例的URL。

让@信息脱颖而出

无论精心设置了多少邮件通知规则或者过滤器,难免会有漏网之鱼。有一个扩展
github-mention-highlighter(
GitHub/benbalter/github-mention-highlighter)可以突出显示了对名字的所有引用。即使是在文字墙中,或者当快速浏览评论时,也能看到一眼就发现所有@信息。

链接到代码行

这个技巧不算太隐秘,但是并非所有人都知道。在查看文件时单击行号来链接到特定的代码行。默认情况下行号(例如#L1337)被附加到URL,会直接连接到这一行行。

如果该文件被编辑,删除或重命名,该链接将不能再按预期工作。这时可以按y或单击Copy permalink来生成将始终有效的规范URL。

还可以通过按住SHIFT并选择开始和结束行的链接范围。

额外的好处:如果在GitHub注释中添加代码段链接,则会显示漂亮可视化代码显示。

MD文档技巧

GitHub Flavored Markdown非常适合文本和基本表的原始格式设置,但有时您需要发挥创造力,使其能够按您想要的方式工作。

键盘标签

可以使用 标签使文本看起来像按钮,这与常规反引号文本略有不同。非常适合在README或者Wiki中记录诸如键盘快捷键或游戏控件之类的内容。

Press W to go up, and A to go down.

If you can find the ESC, pressing that will fire missiles


十六进制代码可视化

将十六进制颜色放在反引号中会自动渲染出该颜色六角形图块。

GitHub contribution graph colors: `#C6E48B` `#7AC96F` `#249A3C` `#196127`

Diff可视化

可以使用反引号对diff可视化,会根据需要突出显示diff内容红色或绿色的线。

```diff

10 PRINT "BASIC IS COOL"

- 20 GOTO 11

+ 20 GOTO 10

```


实际上,如果在打开三个反引号之后添加了语言,则会相应地用该语言突出渲染显示代码的语法。

大段描述技巧

添加冗长的错误日志或冗长程序输出的错误信息有助于问题的解决,但如果它占用了页面大量的空间,可以考虑使用

标签。

Having some problems firing up the laser.

Click here to see terminal history + debug info

488 cd /opt/LLL/controller/laser/

489 vi LLLSDLaserControl.c

490 make

491 make install

492 ./sanity_check

493 ./configure -o test.cfg

494 vi test.cfg

495 vi ~/last_will_and_testament.txt

496 cat /proc/meminfo

497 ps -a -x -u

498 kill -9 2207

499 kill 2208

500 ps -a -x -u

501 touch /opt/LLL/run/ok

502 LLLSDLaserControl -ok1

使文字和图像居中

在2020的今天,将网页中的所有内容居中仍然是一个很好的实践经验。有一个标签

[ 你的内容]
。比如,非常适合将徽标放在仓库的自述文件中居中,可以用:

This is some centered text.

较小的文字

标记中换行可以使其变小。非常适合在图像下添加"图1:描述"之类的内容,或者使表中的文本变小以使其不会水平滚动。


Fig 1: Megatocat into action

View more octocats on the [Octodex](octodex.github.com/)!

至此,我们基本上已经回到90年代了,它具有良好的老式手工制作HTML。就像当初使用记事本和Netscape Navigator进行此操作的人一样,我对此表示满意。

魔术Markdown表?

Table-magic(stevecat.net/table-magic/)是在Markdown中用于构建和维护复杂表格的利器。这个开源工具可让我们轻松,快速地在多种表格格式之间转换,包括CSV,TSV,Markdown,SQL和HTML。可以用以内置形式编写表格,然后简单地复制并粘贴markdown。

专题标签的URL技巧

GitHub UI提供了供一种按主题和语言筛选的方法仓库(例如,搜索所有分类为#game JavaScript的仓库)。查看两个主题组合的搜索结果的唯一方法是通过一些URL技巧。只需通过?q=[TOPIC]在主题URL后面附加一个即可组合两个主题的结果。比如:

所有带有#covid-19和#visualization标记的仓库:GitHub

/topics/covid-19?q=visualization

所有标记为#chrome-extension和#github的仓库:GitHub /topics/chrome-extension?q=github

所有标记为#unity和#shader的仓库:GitHub /topics/unity?q=shader

所有标记为#minecraft和#mod的仓库:GitHub/topics/minecraft?q=mod

给仓库添加专题标签可帮助人们发现专题,甚至为专题做出贡献?在仓库中添加专题标签非常简单:只需在仓库介绍前面单击按钮并输入一些与项目目的和专题关键字即可。?

黑暗主题

有些小伙伴可能会对黑暗主题感兴趣,有一个非官方的GitHub Dark Theme浏览器扩展(
GitHub/StylishThemes/GitHub-Dark)。它可与Chrome,Firefox,Opera和Safari配合使用,有黑暗主题控的可以尝试:

仓库贡献统计

有时,分析仓库的元数据并提取指标很有用(或很有趣)。希望没有人判断他们进行了多少次提交,但是可以使用git shortlog -sn命令行可以按照提作者交数统计的贡献大小列表。

git shortlog -sn


3164 Stanley Goldman

1549 Andreia Gaita

195 Don Okuda

191 Emil "AngryAnt" Johansen

15 Meaghan Lewis

9 Lee Reilly

8 Sarah Guthals

7 Sam Christiansen

7 Mauro Palumbo

6 Marcus Christensen


还可以使用排除合并提交git shortlog -sn --no-merges。

如果统计对象是公共仓库,则GitHub High Scores(
leereilly.net/github-high-scores)能提供仓库贡献者的老式8位类似街机的样式视图。非常适合炫酷,打印出来以固定在办公室的公告栏或冰箱上。

以上只是对提交内容的统计,对应到代码行数呢?相对比提交数这可能是一个更重要的指标。有大量简洁的CLI项目可帮助我们分析Git数据。

有一个工具git-quick-stats
GitHub/arzzen/git-quick-stats)很好地统计总结仓库活动。甚至可以按天,小时和月查看贡献信息。

git-quick-stats


Stanley Goldman :

insertions: 1800 (1%)

deletions: 1455 (1%)

files: 221 (2%)

commits: 108 (3%)

lines changed: 3255

first commit: Thu Apr 6 09:33:53 2017 -0700

last commit: Fri Jul 27 14:14:51 2018 -0400

另一个工具git-fame(GitHub/casperdcl/git-fame)统计贡献信息时候,包括了代码行。

git-fame


git-stats
GitHub/IonicaBizau/git-stats)统计信息包括了各种有趣的数据,包括贡献百分比和一个精美的ascii饼图。

摩尔斯电码训练

最后但并非最不重要的一点……您是否梦想过一种锻炼身体和练习莫尔斯电码的方法?有一个工具veggiedefender(GitHub/veggiedefender)可让我们通过反复关闭笔记本电脑来生成莫尔斯电码,并附带一些非常的功能列表。健身和信息发送两不误:

相关推荐

JPA实体类注解,看这篇就全会了

基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

B 客户端流RPC (clientstream Client Stream)

客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

我的模型我做主02——训练自己的大模型:简易入门指南

模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

使用投机规则API加快页面加载速度

当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

JSONP安全攻防技术

关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

大数据Doris(六):编译 Doris遇到的问题

编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

网页内嵌PDF获取的办法

最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

下周重要财经数据日程一览 (1229-0103)

下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

PyTorch 深度学习实战(38):注意力机制全面解析

在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

聊聊Spring AI的EmbeddingModel

序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

前端分享-少年了解过iframe么

iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...