关于 GitHub 的奇技淫巧

news2024/9/29 11:29:11

介绍下多年来使用 GitHub 所了解到的技巧

学会看文档

如何学习使用 GitHub 呢?最好的方式就是:阅读官网文档。

官方文档通常比任何教程都 全面、权威、准确。网上教程和文章满天飞,但都是建立在官方文档的基础上,一旦官方文档修改了,很难做到实时同步,就可能会让学习者感到困惑。

对于有经验的程序员来说,通常都会选择阅读官方文档来学习技术。

此外,GitHub 文档还有中文版,翻译地挺到位的,非常推荐阅读。

官网文档地址:https://docs.github.com/zh

英文版的地址:https://docs.github.com/en

对于已经掌握 GitHub 基本用法的朋友,也可以利用该文档查漏补缺,了解更多提升 GitHub 使用效率和工作效率的强大功能。

如何找到优质项目

除了多敲代码写项目,阅读优秀项目的源码,也可以提高我们的编程能力。那么,就有几个问题需要解决:

  • 去哪找
  • 什么是好
  • 怎么找

去哪找

目前业内有很多仓库托管服务平台,例如 GitHub、Gitee、SourceForge、OSChina…

但最好的一定是 GitHub。在这里,你可以找到各种各样的开源项目,大到世界知名框架、小到个人练习片段,还能和他人一起协作完成项目。

Gitee 其实就是国内版的 GitHub,但项目数远不及 GitHub。

而 OSChina (开源中国)和 Gitee 有非常紧密的合作,将一些开源项目进行了整理分类。

什么是好项目

首先,没有最好的项目,只有最合适的。但我们可以通过一些指标和信息来进行基本的评判。

打开一个项目的页面,一个好项目通常有如下特点:

  1. 更多的 star(收藏),对项目实用性的肯定
  2. 更多的 Fork(派生搬运),表示想要学习项目或做贡献
  3. 更多的 watch,表示对项目的关注度高
  4. 积极的 issues(问题),表示更多人使用项目并希望改进
  5. 积极的 Pull requests(代码合并请求),表示更多人愿意合作贡献代码
  6. 频繁更新最近提交时间,表示项目仍在维护
  7. 可直接访问的官网,更正式
  8. 类别标签明确,帮助开发者对项目进行定位

以 ant-design 为例:

然后我们接着往下看,一个好项目的 README.md(项目描述)通常会很完善,例如有图标、徽章、多种语言的文档、介绍、用法…

怎么找

GitHub 搜索

最简单粗暴的方法:想学什么就搜什么,然后根据一些简单的排序规则(例如根据 star )来筛选。

例如学后端,就搜索 backend:

但这样太简单了,我们可以加上过滤条件,只需在搜索时加上一些参数即可:

  • in:name <关键字>​:指定查询仓库名称中包含“关键字”的仓库
  • in:description <关键字>​ :指定查询仓库描述中包含“关键字”的仓库
  • in:readme <关键字>​:指定查询 readme 中包含“关键字”的仓库
  • stars(fork): >(=) <数字> <关键字>​:查询 star 或 fork 数大于或等于指定数字的仓库,并且指定关键字
  • stars(fork): 10..20 <关键词>​:查询 star 或 fork 数在 10 到 20 之间的仓库,并且指定关键字
  • size:>=5000 <关键词>​: 查询 star 大于等于 5000K 的仓库,并且指定关键字
  • pushed(created):>2019-11-15 <关键字>​:更新(或创建)日期在 2019 年 11 月 16 日之后的仓库,并且带关键字
  • license:apache-2.0 <关键字>​:查询 LICENSE 为 apache-2.0 的仓库,并指定关键字
  • language:java <关键词>​:查询仓库语言为 Java 的仓库,并且指定关键字
  • user:<用户名>​:查询某个用户的项目
  • org:<组织名>​:查询某个组织的项目

示例:

# 示例 1:查询仓库名包含 javascript,并且 stars 数大于 1000 的项目
in:name javascript stars:>1000

# 示例 2:查询描述中包含"小程序"、 fork 大于 100、最近更新时间在 2019-11-15、并且开发语言为 vue 的项目
in:description 小程序 fork:>100 pushed:>2019-11-15 language:vue

这么多过滤条件完全不用记,我们可以直接可以用**高级搜索页,自动生成搜索表达式:**​https://github.com/search/advanced

更多技巧,请参考官网文档:About searching on GitHub - GitHub Docs

Explore GitHub

GitHub 官方探索,基于兴趣为你推荐开源项目,精准度很高!

Topics on GitHub

GitHub 官方提供的项目主题分类,帮助你找到合适的项目。

GitHub 官方 Trending

GitHub官方提供的项目趋势统计,能够看到一段时间内项目和开发者新增 star 数的排行,还支持选择语言、编程语言及时间范围,帮你发现优秀、有潜力的开源项目。

Awesome

Awesome 项目是指由社区同学共同贡献而成的项目,包含了某一技术的完整生态(如优秀开源项目、类库、工具、知识点)。比如 awesome-java,awesome-vue

hellogithub.com

一个分享 GitHub 上有趣、入门级的开源项目的网站。

如果想看这个网站背后的故事,可以参考作者的自白:我和 HelloGitHub

searchcode.com

简单全面的开源代码搜索器,一键在 40 万个项目、750 亿行代码中高效搜索,还提供 API 接口

LibHunt.com

汇集了 GitHub 上实用的开源项目和软件类库,让编程人员快速发现好的项目。支持近 20 种不同编程语言的项目,以及各种热门标签,可以快速搜索,还能查看项目热度。

codelf

官网:https://unbug.github.io/codelf

变量命名神器,当我们写项目的时候,总会对变量名、类名、方法名有一个规范,那么就可以通过该网站来搜索其他开源平台的项目源码,帮我们匹配出合适的变量名,支持中文。

输入关键词后,可以选择和关键词相关的标签,一键跳转至项目代码。

PS:底层基于 searchcode。

在线阅读代码

找到项目后,接下来就是阅读了,为了方便开发者,GitHub 推出了在线阅读功能。

操作很简单,打开 GitHub 项目页,然后按下 "."或者 "。"键。

例如著名的 Linux 项目源码,打开项目页是这样的:

按下 "."或者 "。"键后,就会跳转到 https://github.dev/torvalds/linux,这是打开了一个在线的 VSCode,并且该 VSCode 里已经导入了 Linux 的源码:

这样就不用下载到本地再打开了,非常方便。

在线看文档

有些项目的文档不是 Markdown 格式,而是 HTML 格式的(例如 Java Doc),那么此时在 GitHub 上看起来就直接是源代码,而不是渲染后的结果:

我们可以用一个神奇的网站:https://htmlpreview.github.io,在这里输入你想看的 GitHub 上的 HTML 文件,就能看到渲染后的结果了:

在线运行代码

光阅读源码、文档效果有限,更推荐自己修改、调试和运行下项目,才能更加深入理解该项目。

而有个网站能做到这点:https://www.gitpod.io,这是一个可以在线提供 dev 环境并运行代码的地方。

使用起来很简单,(可以直接通过 GitHub)登录,然后输入项目链接,例如我输入我的博客项目(前端项目),并选择用 VSCode(也可以选 IDEA):

然后就可以安装依赖并运行了,具体步骤就不演示了。

小结

善用 GitHub:

  • 学会看文档
  • 学会找优秀项目

三个有助于看源码的好工具:

  • github.dev:按下句号键在线看源码
  • htmlpreview.github.io:在线直接看 html 文档
  • www.gitpod.io:在云上搭建好开发环境并直接运行项目

参考

【硬核干货】如何高效找到优质编程项目?

我和 HelloGitHub

SourceForge:世界上最大开源平台,被残酷地抛弃了!

Github 里面居然藏着个 IDE?在线看开源代码也太方便了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B站UP主视频素材去哪找?如何下载爆款视频素材?

大家好&#xff0c;今天我们来聊聊B站UP主们常用的视频素材来源。制作视频的朋友们都知道&#xff0c;寻找优质素材不仅费时&#xff0c;还很重要。但好的素材能让你的视频瞬间提升档次。以下是一些推荐的网站&#xff0c;帮助你找到并下载精彩的视频素材。 蛙学网 蛙学网提供了…

为什么美联储降息和我国刺激措施可能提振铜价

美联储降低利率通常对铜价产生积极影响。这主要是由于利率与美元汇率之间的关系。当美联储降息时&#xff0c;往往会使美元对其他货币贬值。 由于全球市场上的铜价是以美元计价的&#xff0c;美元走弱会使用其他货币购买的金属价格更便宜。这可能刺激来自国际买家的需求&#x…

力扣 简单 876.链表的中间结点

文章目录 题目介绍题解 题目介绍 题解 法一&#xff1a; class Solution {public ListNode middleNode(ListNode head) {ListNode cur head;int n 0;while (cur ! null) {n;cur cur.next;}ListNode curr head;for (int i 0; i < n / 2; i) {curr curr.next;}return …

一个基于共享内存的内存数据库:4 编程参考

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

Jenkins配置Git和Maven

1、Git设置 1、上传文件 将git压缩包上传到服务器上 2、解压压缩包 tar -zxvf git-2.33.0.tar.gz 3、安装所需依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 【输入 y 】 【报错】 执行“安装所需依赖”的命…

Spring Cloud 工程搭建服务注册_服务发现

文章目录 Spring Cloud 工程搭建服务拆分示例数据库工程搭建构建父子工程创建父工程创建子项目完成两个接口 远程调用实现添加ProductInfo字段定义RestTemplate修改OrderService 服务注册/服务发现 - Eureka注册中心CAP理论常见的注册中心ZookeeperEurekaNacos Eureka 介绍搭建…

双十一好物清单分享?五款超值的数码好物分享!

双十一马上就来啦&#xff0c;大家是不是都等着在这个时候买点好东西呀&#xff1f;数码产品可是咱们生活里少不了的&#xff0c;能让咱们的生活更方便、更有意思。我这儿给大家挑了五款特别值的数码好东西&#xff0c;准备来跟大家分享分享&#xff01;快来看看有没有你中意的…

构建Spring Boot在线购物商城

第1章 绪论 1.1 课题背景 当今社会是一个互联网的社会,随着互联网的发展,信息数字化时代已经来临。互联网已经成为了新的风口&#xff0c;百度、阿里巴巴、腾讯则是中国互联网公司中的领头羊&#xff0c;互联网拉近了人与人之间的距离&#xff0c;同时也让我们的生活变得更加便…

sheng的学习笔记-AI-时序差分学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 强化学习&#xff1a;sheng的学习笔记-AI-强化学习&#xff08;Reinforcement Learning, RL&#xff09;-CSDN博客 蒙特卡罗强化学习&#xff1a; sheng的学习笔记-AI-蒙特卡罗强化学习-CSDN博客 什么是时序差分学习 时序…

夹耳式耳机值得购买吗?5个专业总结夹耳式耳机坑点!

夹耳式耳机近年来备受消费者喜爱&#xff0c;尤其是在追求健康生活方式的大背景下&#xff0c;这种类型的耳机因其开放式的聆听体验而受到青睐。然而&#xff0c;伴随着市场的火爆&#xff0c;关于夹耳式耳机是否真的如厂商所宣称的那样出色&#xff0c;也引发了不少讨论。尽管…

[遇到问题] Word中插入公式横线“-”变成了长连字符

1 一招解决Word里公式减号/短横线&#xff0c;在关闭word后变成连字符_word中公式短横线变成了减号-CSDN博客 2 选中横向-公式-文本&#xff08;公式文本化即可&#xff09;

Leetcode 706. 设计哈希映射

1.题目基本信息 1.1.题目描述 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。 实现 MyHashMap 类&#xff1a; MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映…

2024年9月下旬AITOP100平台活动专区更新了7场AI大赛活动,奖金池59.4万元

亲爱的创新者们&#xff0c;AITOP100平台的活动专区在9月下旬已更新7场AI大赛活动。 本期为您精选了7场综合性的AI大赛&#xff0c;涵盖了AI绘画、AI视频、AI音乐和应用类领域&#xff0c;其中6场大赛均设有丰厚的现金奖励。这些赛事均由知名大平台或政府单位主办&#xff0c;…

Java: String类

一 String类 在 Java SE 中&#xff0c;String 类是用于处理字符串的一个非常重要的类。字符串在 Java 中是不可变的&#xff08;immutable&#xff09;&#xff0c;意味着一旦创建&#xff0c;字符串的内容就不能被修改。所有对字符串的操作实际上都是创建了一个新的字符串对…

提升效率,C4D云渲染教程来了

因为C4D主要搭配的渲染器OCtane和Redshift都是GPU渲染器&#xff0c;阿诺德渲染器也可能直接用GPU渲染&#xff0c;所以大部分C4D渲染农场都支持用RTX2080、3090、4090系列显卡云渲染&#xff0c;云渲染追求速度&#xff0c;分机渲染任务&#xff0c;比如分100台机器渲染一个相…

【算法】二叉树中的 DFS

【ps】本篇有 6 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;计算布尔二叉树的值 .1- 题目解析 .2- 代码编写 2&#xff09;求根节点到叶节点数字之和 .1- 题目解析 .2- 代码编写 3&#xff09;二叉树剪枝 .1- 题目解析 .2- 代码编写 4&#x…

手机浏览器如何切换IP‌?多种方法任你选

在数字化时代&#xff0c;手机已成为我们日常生活中不可或缺的一部分&#xff0c;而手机浏览器则是我们访问互联网的重要工具。然而&#xff0c;有时出于隐私保护、访问限制规避或其他需求&#xff0c;我们可能需要切换手机浏览器的IP地址。本文将详细介绍多种在手机上切换浏览…

主流数据库与最佳备份工具选择

文章目录 前言选择备份工具的考虑因素1、数据库兼容性&#xff1a;2、备份性能&#xff1a;3、恢复能力&#xff1a;4、备份策略与灵活性&#xff1a;5、数据安全性&#xff1a; 主流数据库概述1、Oracle2、PostgreSQL3、Microsoft SQL Server4、MongoDB 备份工具推荐1、Oracle…

C++手动实现栈、和队列

栈的实现 头文件 #ifndef MY_STACK_H #define MY_STACK_H #include <iostream>using namespace std;class my_stack { private:int *base;//动态栈指针int top;//栈顶元素int size;//栈大小 public:my_stack();//无参构造my_stack(int size):top(-1),size(size){base …

机器学习——Bagging

Bagging&#xff1a; 方法&#xff1a;集成n个base learner模型&#xff0c;每个模型都对原始数据集进行有放回的随机采样获得随机数据集&#xff0c;然后并行训练。 回归问题&#xff1a;n个base模型进行预测&#xff0c;将得到的预测值取平均得到最终结果。 分类问题&#xf…