源代码管理工具--GitHub

发布时间 2023-05-26 16:56:03作者: 墨色诗薇

一.GitHub简介

Github是一个基于Git的代码托管平台,主要为开发者提供基于Git仓库的版本托管服务,并提供一个web界面。其由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。 总部位于美国旧金山。

使用上,付费用户可以建私人仓库,免费用户只能使用公共仓库,也就是代码要公开。对学生有一定的福利,如果你是学生的话,可以用学校分配的邮箱在官网进行申请,申请通过之后,也能够创建私有项目。

 

二.GitHub优势

  1. 最大的特征:"面向人"。

GitHub 与以往的仓库管理服务最大的不同,就在于它以人为中心,以往的仓库托管都是以项目为中心,每个项目就是一个信息封闭的世界。

  1. 学习优秀的开源项目

GitHub是”世界最大的同性交友网站“,世界上最大的开源社区,因为开源社区的贡献,开发才越来越容易,越来越快速。使用开源项目,学习他们优秀的设计思想、实现方式,是最好的学习资料,也是一份提升自己能力的绝佳方式!

  1. 多人协作

git 版本控制和远程协作功能,在 GitHub 中,可以发起一个项目,比如翻译一份不错的英文文档,发布后,感兴趣的人可以参与到项目中,利用业余时间对项目做贡献,且可以互相审核、合并,集思广益。

  1. 搭建一个博客网站

GitHub Pages提供静态网页托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript文件,然后构建并发布网站。 您可以在 GitHub Pages 示例集合中查看 GitHub Pages 站点的示例。GitHub 提供免费的github.io子域,也支持自定义域名。

 

三.GitHub使用

  1. 认识GitHub

这里我们跳过对GitHub的注册登录介绍,因为GitHub网站为纯英文,首先我们需要认识一些词汇概念。

此外还有一些常见词汇:

repository - 仓库(缩记Repo):可以把仓库理解为一个文件夹,里面存放项目 中的所有文件,并记录着每个文件的修改记录。GitHub上仓库 分为public和private。

fork - 复刻:fork - 复刻/分叉,是其他用户创建的仓库副本。副本的修 改,不会影响原始上游仓库。当然可以通过PR(拉取请求),将修 改同步到原始仓库。

clone - 克隆:clone 复制/下载的意思。是指将远程仓库复制到本地电脑 的操作。

pull - 拉取:拉取是指同步远程仓库到本地的操作。比如有人修改了远 程仓库文件,我们通过pull操作,将修改同步到本地,以使其保 持最新。

push - 推送:推送是指将提交的修改发送到 GitHub.com 上的远程仓库。 例如,如果您在本地更改内容,便可推送这些修改,让其他人能 够看到。

Star - 星星,就是给项目点赞,表示项目的代码或方案受欢迎程度,但 在 GitHub 上点赞数很难,一个项目能够获得100个 star 就算 很不容易了。

Main- 默认开发分支。每当您创建 Git 仓库时,都会创建名为 main 的 分支,它将成为活动分支。在大多数情况下,它包含本地开发内 容,但这完全是就惯例而言,并不是必需的。

2.搜索项目

搜索很容易,但是搜索到想要的内容不太容易。

直接搜索所需的项目框架,会显示非常多的开源项目,很难找到感兴趣和适合的开源项目,准确性很低。

所以下面我以技巧为主的介绍一些稍微精确一点的搜索方法。

(1)按照 name 搜索

搜索项目名里包含×××的项目:in:name ×××

这一部可以帮我们过滤掉一部分相关性不大的项目,我们还可以继续通过添加限制,来进一步筛选过滤,如:

约束项目的star数大于100+:in: name ××× star: >100

约束项目的fork数大于50+:in: name ××× fork: >50

加入限制之后,往往能让搜索结果瞬间精准很多。

 

(2)按照 README 来搜索

搜索 README.md 里面包含××× 的项目:in : readme×××

也可如(1)中添加限制,如:in:readme ××× star:>100

 

(3)按照 description 搜索

假设目前学习的某个项目,搜索项目描述(description)里面包含这个项

目:in:description ×××

也可以限制编程语言:

In : description ××× language : Java

还可以限制项目的更新时间:

In : description××× language: Java  pushed:>2023-05-01

3.创建一个公开仓库

(1)右上角的➕/New repository

填写如下内容:

Repository name:填写仓库名称

Description:填写仓库说明

Public、Private:公开仓库Public内所有内容会被公开,选择Private则为创建非公开仓库。

Initialize this repository with a README:用README文件初始化仓库,打上勾以后让用户可以立刻clone这个仓库。如果想向 GitHub添加手中已有的Git仓库,建议不要勾选,直接手动push。

Add .gitignore:这个下拉菜单很方便,通过它可以在舒适化时,自动生成Add .gitignore文件(这个文件用来描述Git仓库中不需要管理的文件与目录)。

Add a license:Add a license菜单可以选择要添加的许可协议文件。如果这个仓库中包含的代码已经确定了许可协议,那么请在这里进行选择。

都填充和选择完后,点击Create repository,完成仓库的创建。

(2)链接仓库

·  新建仓库的链接:github.com/用户名/仓库名

·  README.md:初始化时就已经生成,一般用来描述本仓库所包含软件的 概要、使用流程、许可协议等信息。

·  GitHub Flavored Markdown:GitHub上的文档都可以用Markdown语法编 写,而GitHub Flavored Markdown是GitHub在Markdown语法的基础上 扩充而来的。

(3)公开代码

clone已有仓库。打开需要拷贝的仓库链接,点击右侧按钮:Clone or download,获得一个git地址。如下图:

 这里会要求输入GitHub上设置的公开密钥的密码,认证后,仓库便会被clone到仓库名后的目录中,将想要公开的代码提交至这个仓库再push到GitHub的仓库中,代码便会被公开。

 

四.GitHub与Git的联系和区别

  1. 关于Git

Git是分布式管理的版本控制器。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个快照流。

Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

  1. GitHub的联系和区别

Git:一款免费、开源的分布式版本控制系统。开发者将源代码存入“Git仓库” 的资料库中

 

GitHub:主要提供基于 git 的版本托管服务

 

关联: GitHub上公开的软件源码是由Git进行管理,GitHub 上托管的所有 项目代码都是基于 Git 来进行版本控制的,所以 Git 只是 GitHub 上用来管理项目的一个工具而已。

 

五.总结

GitHub 基本是全球最大的开源社区了,我们可以把它当做一份庞大的学习资料。学习使用GitHub,可以让我们接触到最新的技术知识,也可以让我们找到很多感兴趣的项目,锻炼自己的的项目编程能力,提升我们的技术。

更早的接触GitHub,不管是毕业找工作,还是做科研,都有十分重要的意义。