1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 网络工具 > 正文

网络工具

一文玩转github

1987web2023-09-16网络工具123
GitHub是一个面向

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。

GitHub 于 2008 年 4 月 10 日正式上线,除了Git代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过 350 万,托管版本数量也是非常之多,其中不乏知名开源项目Rubyon Rails、jQuerypython

作为一名优秀的大学生,为了获取优质项目和源码,少不了逛 GitHub。一天下来,多多少少都会在 GitHub 上搜集优秀的开源项目,但是总是面临着clone速度慢,难以搜索等问题,本文结合笔者日常使用github跳的坑,做一个总结与分享,希望能帮助到社区同学


1.搜索指南

  1. 制定搜索方式:

(1)根据项目的介绍内容(如标题name,描述description,Readme介绍文档)

  • 按照文件搜索:in:file
  • 按照路径检索:in:path
  • 按照语言检索:language:java
  • 按照文件大小: size:>100
  • 按照后缀名检索:extention:css
  • 按照是否被fork过:fork:true

(2)项目热度筛选:

通过Stars数以及Forks数反映该项目的火热程度

  • stars:(区间)根据所输入的 stars区间 进行筛选
  • forks:(区间)根据所输入的 forks区间 进行筛选

(3)安利利器lib4dev,首先放上 lib4dev 的在线网址:

简介使用 lib4dev 可以查找任何编程语言的最佳库,它界面简单,基本上所有编程语言的库和开源项目都可以在上面找得到。这个网站起的名字就挺有意思的:lib4dev,lib 是库的意思,4 是 for ,dev 是开发者,所以是针对开发者的库的意思。

  • 按照编程语言分类

我特意看了一下,里面包含的编程语言太全了,例如最常见的 C、C++、Go、Java、Python 等等。

  • 按照主题分类

除了按照编程语言来分,还提供了主题划分,例如算法、安卓、构建工具等等。

  • 多类型排行

值得一提的是该网站上的所有项目都是可以 link 到 GitHub 上的。每一种编程语言或者主题下都可以根据不同属性进行划分。

例如,我们选择 Python 语言。在页面右上角可以根据不同属性进行排行,方便我们获取最想要的开源项目。

  • 搜索功能

在网站里,我们可以看到对应项目的所有内容,当然你也可以选择跳转到项目的 GitHub 仓库中去。在这个 lib4dev 的网站上,对于找开源项目来讲,可以大大提高大家的效率,节省很多时间,有兴趣的朋友也可以去关注收藏一下。


2.clone技巧

通过以下方式,让我下载Github速度飞快,因为刚好有代理,就用的第一种方式,而后面几种方式参考自网上的一些方案,自己也尝试了一下,有点用,就贴出来,给大家提升一下工作效率

(1)利用开源中国提供的代码仓库

实际上,国内也有很多代码仓库提供方,国外也不只github。只不过国内也是刚刚开始,关注的人不多。

开源中国提供的代码仓库提供了一个功能,就是它可以将github账号中的代码 clone 到开源中国的账户中去。这个代码仓库叫做 码云 ,没错就是码云?。

要求你有一个github账户,一个码云gitee账户。

步骤很简单

  • 将github上面你想要搞下来的项目首先 frok 到你自己的github的账户中去。耗时:一瞬间
  • 登录gitee,没有的自行注册。网页中有添加项目的按钮,一个加号。点击加号,下拉列表里面有 迁移github项目 的选项,点开后按照提示关联自己的github账号,之后选择你要迁移的项目,按提示操作。耗时:不到三分钟。
  • 按照 clone github项目方法, clone 迁移到gitee账户中的项目。区别是 clone 链接换成了目标项目在gitee中的链接。通常下载速度是以MB/s为单位的。

访问 首先在右上角的搜索框中输入所要下载的项目名称,看看码云上是否已存在该项目:

在码云的搜索

框中可以直接搜索:

点击任意一个搜索结果,如果发现与要下载的仓库一致,则可以通过码云直接克隆下载:

如果要下载的github项目在码云上不存在,可以先注册一个码云帐号,再将github的项目克隆过来:进入个人中心后找到右上角的+ 号,选择从Github导入仓库

(2)有代理

只需要针对github设置代理即可,这里以ss为例子:

只对github.com
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
 
取消代理
git config --global --unset http.https://github.com.proxy

(3)无代理

  • 我们可以使用github的镜像网站
github.com.cnpmjs.org
https://www.ipaddress.com/

(3)只下载最新版本的仓库(效果一般)

下载库的时候只下载最新的那个库,可以使用这个命令:

git clone git仓库地址 --depth=1

这样就只下载到最新版本,而不是带有全部历史版本的仓库。

3.一秒钟把Github项目变成前端网站

GitHub Pages大家可能都知道,常用的做法,是建立一个gh-pages的分支,通过setting里的设置的GitHub Pages模块可以自动创建该项目的网站。

这里经常遇到的痛点是,master遇到变更,经常需要去sync到gh-pages,特别是纯web前端项目。

选择完master branch之后,master自动变成了网站。master所有的提交会自动更新到网站。

4.gitconfig配置文件

Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置:

1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。

2.~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。

3.位于git目录的config文件 (也就是 .git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆盖了在/etc/gitconfig中的同一个值。

在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:\Documents and Settings\$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。

5.GitHub手机版App,方便开发者与用户互动

GitHub并没有给移动App加入写代码功能,GitHub表示,软件开发生命周期中的协作很重要,写代码只是其中的一小部分。

对于开发者来说,最重要的一点是再也不会受到通知消息的狂轰滥炸了,移动版程序允许用户自定义过滤器,像电子邮件客户端一样过滤出其中最重要的信息。

之前推出的工作流自动化和CI/CD解决方案GitHub Actions以及GitHub Packages从beta版进化为正式版,每个开发者都可以使用。

GitHub增加了免费自托管运行程序,可以在基于ARM得设备(比如树莓派)上运行Actions的功能。

GitHub还改善了代码搜索,新的搜索功能可以根据上下文相关的语义库来查找定义,并在代码中跳转到相应站点。

6.在线编程

github特别是点进去每个文件夹浏览文件非常的不方便,大工程文件之间的切换有时候网页加载特别慢非常不方便。

推荐sourcegraph这款我用的Google浏览器插件,安装之后让在线浏览github项目源码,查找引用和定义如同在IDE看代码一样,体验如丝滑般舒爽。

进入Google应用商店 搜索sourcegraph下载安装插件,如下图:

点击此处

愉快的编程啦


安利几个hub

接下来就是愉快工作了

这基于 GitHub 从头开始构建的全新代码搜索引擎,该引擎的特点是速度更快(大约是旧代码搜索速度的两倍),功能更强大(支持子字符串(substring)查询、正则表达式搜索和符号搜索),并具备一定的代码理解能力,能将最相关的结果放在首位。

此外,研发团队还重新设计了 GitHub 的代码视图,将搜索、浏览和代码导航紧密集成起来。

我们来看一下改进之后,GitHub 的应用效果。

修复 bug

修复 bug 是软件开发中最常遇到的工作情况之一。在修复之前,开发者们首先要找到 bug 在哪。一个大型软件或项目通常具有多个系统或存储,如果没有代码搜索,开发者就不得不克隆一堆存储库并使用 grep 遍历它们。现在借助 GitHub 的代码搜索功能,开发者可以在大量代码中进行快速查找:

查找配置文件

在实际开发中,项目配置往往是硬性限制条件。GitHub 现在为开发者提供查找配置文件的功能。例如,在代码中搜索包含「内存(memory)」一词的 YAML 配置文件,就能查看一些内存占用情况:

这种查询功能对于开发中的资源规划与分配至关重要。

此外,GitHub 还制定了一些避免安全漏洞的规则,例如禁止使用 dangerouslySetInnerHTML 将危险的字符串注入 DOM。

正式上线,GitHub向所有用户开放全新代码搜索引擎

机器之心报道