如何更好的使用 GitHub 检索你想要的资源


当我还是一个开源贡献者的初学者时,我最大的挑战之一是找到正确的项目/问题来工作。

在很长一段时间里,我都是依靠互联网上不同作家的资源(顺便说一句,这些资源很好)。但我一直想找到解决这个问题的方法——一种我可以搜索和跟踪适合我技能的项目的方法。

让我们在一件事上达成一致:与谷歌不同,搜索GitHub并不容易。但作为一名开发人员,你很有可能每天都要与GitHub或Gitlab进行交互。

现在的问题不是你使用这些版本控制系统的目的,而是你如何使用它们。就像掌握谷歌搜索技能对任何普通互联网用户来说都是必不可少的一样,我相信对于开发人员来说,学习如何有效地搜索GitHub也是必不可少的。

在本文中,我们将介绍如何正确搜索GitHub的不同技术。你将学习如何进行搜索:

  • Issues 和 Pull Requests
  • Repositories
  • Users
  • Topics

以及更多。让我们开始吧。

GitHub搜索查询

要想在网上找到某样东西的详细信息,你需要有正确的搜索技巧。 GitHub 也一样 ——— 要找到详细信息,你可以利用常见的筛选、排序和搜索技术,轻松地找到给定项目的特定 Issues 和 Pull Requests。

尽管你在互联网上列出了不同项目的多种资源,但当你想自己进行搜索时,主要的问题就来了。如何开始? 你应该使用哪些关键字来找到正确的结果?

大多数维护人员倾向于给他们的项目贴上问题标签,这使得贡献者更容易找到合适的项目。下面列出了在使用GitHub时可能会帮助您的一些技巧。

如何在GitHub上搜索问题和提交请求

寻找项目去贡献的最常见方法之一是通过搜索问题和相关PR。以下是您可以轻松找到可靠答案的一些技巧:

  1. is:issue is:open label:beginner - 此特定查询将列出所有已打开并标记为初学者问题的项目。
  2. is:issue is:open label:easy - 这列出了被标记为简单的所有打开的问题。
  3. is:issue is:open label:first-timers-only - 这列出了欢迎首次投稿的所有未解决问题。
  4. is:issue is:open label:good-first-bug - 这列出了标记为适合解决的第一个错误的未解决问题的项目,以吸引贡献者对其进行处理。
  5. is:issue is:open label:"good first issue" - 这将列出所有未解决的问题,标签为"好的第一个问题",这意味着这是初学者入门的好地方。
  6. is:issue is:open label:starter -列出所有开放的被标记为starter的问题。
  7. is:issue is:open label:up-for-grabs - 列出所有开放的问题,如果您具备必要的技能,则可以随时进行处理。
  8. no:project type:issue is:open - 将列出所有未分配给特定项目的待处理问题。
  9. no:milestone type:issue is:open - 很多时候,项目都是用里程碑来跟踪的。但是,如果您想查找未跟踪的问题,此搜索查询将为您列出这些项目。
  10. no:label type:issue is:open - 这将列出所有未标记的未解决问题。
  11. is:issue is:open no:assignee - 列出所有未解决的还没分配给某个人的问题。

如何搜索存储库

默认情况下,要进行搜索,你只需在搜索栏中输入存储库名称即可!你将获得一些搜索结果。

但你获得你想要的确切回购的几率非常低。

让我们看一下可以缩小搜索范围的一些方法:

如何通过名称、描述/ README 查找

按自述文件的名称和描述进行搜索时需要注意的一点是,搜索短语应以in限定符开头。这使得搜索“内部”你要查找的内容成为可能。

示例

  • 使用in:name。比方说,你正在寻找资源,以了解更多关于数据科学的信息。在这种情况下,你可以使用Data Science in:name 命令,它将列出仓库名称中含有 Data Science 的仓库。

  • 使用in:description。如果你想找到具有特定描述的仓库,例如,仓库的描述中包含“ freeCodeCamp ” 一词,我们的搜索将是:freecodecamp in:description

  • 使用in:readme。你用它来搜索一个文件的 README 中的某一短语。如果我们想找到 README 中包含 freecodecamp 这个词的仓库,我们的搜索将是:freecodecamp in:readme.

  • 使用in:topic。你用它来查找某个短语或单词是否被标注在主题中。例如,要找到所有在主题中列出 freecodecamp 的仓库,我们的搜索将是:freecodecamp in:topic

你还可以组合多个搜索查询以进一步缩小搜索范围。

怎样根据 Stars, Forks 查找

你还可以根据项目有多少 Stars 和 Forks 来搜索存储库。这让你更容易知道这个项目有多受欢迎。

例子

  • 使用 stars:n。如果你搜索的仓库有1000 Star,那么你的搜索查询将是stars:1000。这将列出拥有1000 Star 的存储库。

  • 使用 forks:n。这指定了存储库应该拥有的 Fork 数量。如果你想找到 Fork 少于100个的仓库,你的搜索将是:forks:<100

好在你总是可以使用关系运算符,比如 <><=>= 以及 .. 帮助你进一步缩小搜索范围。

如何按语言查找

在 GitHub 上搜索的另一个很酷的方法是按语言搜索。这可以帮助你过滤出特定语言的仓库。

示例:

  • 使用language:LANGUAGE。例如,如果你想找到用 PHP 编写的仓库,你的搜索将是:language:PHP

如何按组织名称查找

你也可以搜索由一个特定组织维护或创建的仓库/项目。为此,你需要用关键词org:...来开始你的搜索,然后是组织名称。

例如,如果你搜索org:freecodecamp,它将列出与 freeCodeCamp 相匹配的仓库。

如何按日期查找

如果你希望你的结果基于一个特定的日期,你可以使用这些关键词之一进行搜索:createdupdatedmergedclosed。这些关键词应该伴随着格式为YYYY-MM-DD的日期一起使用。

示例:

  • 使用keyword:YYYY-MM-DD。举个例子,我们想搜索所有在 2022-10-01 之后创建的带有 freeCodeCamp 这个词的仓库。那么我们的搜索将是:freecodecamp created:>2022-10-01

你也可以使用<>>=<=来搜索指定日期之后、之前和指定日期的日期。要在一个范围内搜索,你可以使用....

如何通过许可证查找

当你在寻找一个可以贡献的项目时,许可证是非常重要的。不同的许可证对贡献者可以做什么或不可以做什么给予不同的权利。

为了使你更容易找到有正确许可证的项目,你需要对许可证有一个很好的了解。你可以在这里阅读更多关于它们的信息。

示例:

  • 使用license:LICENSE_KEYWORD。这是一个搜索具有特定许可证的项目的好方法。例如,要搜索具有 MIT 许可证的项目,你可以使用license:MIT.

如何通过可见度查找

你也可以根据仓库的可见度进行搜索。在这种情况下,你可以使用公有或私有。这将分别匹配公共或私有存储库中的问题和 PR 。

示例:

  • 使用is:public。这将显示一个公共存储库列表。让我们举一个例子,我们希望搜索 freeCodCamp 拥有的所有公共存储库。那我们的搜索就会:is:public org:freecodecamp
  • 使用is:private。该查询旨在列出给定搜索查询下的所有私有存储库。

结论

尽管我们在这里介绍了许多搜索查询,你仍然可以通过将多个参数组合在一起来进一步缩小搜索范围。

有关更多资源和更多搜索参数,你可以查阅GitHub文档或使用高级GitHub搜索。这些方法总能派上用场,因为它们提供了更多的过滤选项。

你可以使用大量的搜索参数来简化你在GitHub上的日常活动。希望这将帮助你更容易和有效地使用这个平台。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://www.freecodecamp.org/news/github...

译文地址:https://learnku.com/laravel/t/73213

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!