github高级搜索技巧_分享 | 一些 GitHub 的使用小技巧

点击上方蓝字设为星标1c6957ab91de538750d8e3900237f787.png

每周一、三、五上午 8:30 准时推送

下面开始今天的学习~

227616dd70958947a2cacc827663cfe0.png

1f1f56c8fcfb37e76d220b4c9fdcf878.png

作为程序员而言,GitHub 的使用频率可能并不亚于 Google。对于 Google 我们知道一些高级搜索(比如要找某一个站点的某个内容可以搜索:site:leetcode-cn.com two sum),那么在 GitHub 上,是否有类似的小技巧呢?

5e42c0990125405dbe350e2bfeff847b.png

搜索技巧

传统的搜索就是直接使用关键词,但是 GitHub 的搜索功能远远不止如此,还可以:

名称包含

  • xxx in:name  项目名包含 xxx 的

35a4a22c9b4db979646ed2360069b600.png

  • xxx in:description 项目描述包含 xxx 的

5068c239eb36cebf728774a83f4fe9cf.png

  • xxx in:readme 项目的 README 文件中包含 xxx 的

40839a2e187220cec96fb25e155cbf23.png

仓库统计范围

比如:

  • Django  stars:>=2048   要查找 Stars 数不小于 2048 的 Django 项目

14e7e9be8b6e3437131d1b3f7b79dccd.png

  • Django forks:>2048  Forks 大于等于 2048

f485211aa9fcbef1b6c9c1fcee411503.png

  • Django forks:100..200 stars:80..100

查找 Forks 在 100 到 200 之间 且 Star 数在 80到 100 之间的 Django 项目

6b6ca7c4bb2bb4e87a400e92a7c91c9d.png

项目内搜索

假设我们的项目中有很多杂乱的文件,我们需要快速搜索一个文件(基于文件名),可以在仓库页面上按:"T",然后直接输入文件名,像这样:

2a2346c684938c55d0cc1f41e780a8e8.png

32c1ffc127613ea432fb4dc1c7554923.png

代码分享

对于一些小的代码块,我们可能就用 Gist 分享,但是如果需要强调某一行的话,可以在地址后方追加一个 '#file--L'(因为一个 Gist 中可能会有多个文件,所以需要指定文件名),例如:https://gist.github.com/n0vad3v/8b67a3417a3702063da0465f700eafcd#file-test-L5

这样就可以高亮起来了:

12c3fc8656825431d00d354a53ebb239.png

怎么样,是不是很好理解,同样的,如果需要分享一个仓库中的一行代码的话,可以直接点击左侧的行号,然后分享 URL,就像这样:

3caaa652f07bf9c0b3223e3578e10dd1.png

9cdf9dac883765dcc2455c2a55b09d16.png

代码跳转

相信大家在开发的过程中都有用到函数定义跳转的功能,在 IDE 中,如果在函数调用的地方停留光标,可能会提示对应的函数定义,在 GitHub 中也是如此,对于一些仓库来说,我们可以直接查看对应的函数定义了,只需点击函数的调用位置即可。

5db120f1cca5410ab4d05072f4f6d81c.png

此功能暂时只对于一小部分用户开放,且目前支持的语言有:

  • Go

  • JavaScript

  • PHP

  • Python

  • Ruby

  • TypeScript

8c13d8a1d3ee4974777063de6e2e175d.png

项目协作技巧

分支的基本操作

本地创建一个分支:

2fd54bcdf266588c4087225644207ff8.png

本地切换到一个新分支:

c420d7a0cb6ed8b54decdda719ecc3ce.png

本地删除一个分支:

b7dc05b1fe7e36e3fcbf4bf07c7738c5.png

同时删除远程的(比如 GitHub 上)分支:

91d052431467dc5e4fb26f858e64a7d0.png

commit 签名

如何保证一个 commit 确实是本人作出的? 在 GitHub 上协作的时候如果你拥有了一个人的 SSH Key,或者 GitHub 登录信息,即可以他的身份创建 commit,为了证明某一个 commit 确实是本人做出的,我们可以用自己的 PGP 私钥对 commit 进行签名。 首先先确定自己的密钥 ID: d29ba04777a2c3a63c0b1f2571a538f4.png 此时可以看到自己的密钥 ID,类似如下: 90a231a3d30fe63943e0b8fd3e8c4ee9.png 此时在自己的 Git 仓库中使用入下指令设置本仓库的签名密钥: 8fbea1600f604af7e1f83ba68bd55da0.png 在每次 commit 的时候使用: 57ac39effafb2f53b927bca3edf82feb.png 即可对 commit 进行签名。 如果在 GitHub 设置中添加过自己的 PGP 公钥的话,此时 GitHub 上已经签名的 commit 可以看到一个标识。 338fb3672d57cd74e2536593e2124b3d.png 保持同步 最开始接触 GitHub 的时候 Fork 其他人仓库后发现如果发送了一个 Pull Request 并被 Merge 之后,本地的资源仅仅是暂时和原始项目同步了,但是在原始项目有了新的 commit 之后就会与源项目“脱节”,然而这个时候 pull 操作也仅仅是针对自己 Fork 版本的从而导致同步失败。 此时我们一般对于原始仓库添加一个上游,操作如下(架设原始仓库为: leetcode/article): 026eeadbb61cf50e9607bc6bd8919f20.png 此时,在原始仓库有任何新的更新之后本地操作只需要以下一步即可完成同步: 449b946b7587ec89076ba6efd1182938.png 之后就可以继续在自己的 Fork 上面 commit, push,然后继续发起新的 Pull Request 了。 合并和变基操作 如果自己是项目的所有者,在有了 Pull Request 之后会遇到 Merge 还是 Rebase 的抉择问题,以下加以简单介绍。 Merge,字面翻译为合并,解决完冲突,执行 add 和 commit 操作,此时会产生一个额外的 commit。 b80e657c715c5e4d863ca66ca1f5aef4.png Rebase,字面翻译为变基,解决完冲突,执行 add 和 git rebase --continue,不会产生额外的 commit。 这样master 分支上不会有单纯用于 Merge 的无实际意义的 commit。 f406da426cda57c6e65fed08b0958d71.png

4556e33dd9511c14818d56e2545246e7.png

本文作者:Nova Kwok

编辑&版式:霍霍

声明:本文归 “力扣” 版权所有,如需转载请联系。

4a159c4ff26ae277ae51d11633b5e9fd.gif

1cb7fa7c5f95209f8a3e99ef4a909359.png

be9cf660db5ce76fe1b0555b99283e71.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值