一文看懂 Github
GitHub 介绍
GitHub 是为开发者构建的一个开发平台。GitHub 是一个受开发者工作方式启发的开发平台,从开源到商业,能够在上面进行托管和查看代码、管理项目和数百万其他开发人员一起开发软件。GitHub 提供免费账户和付费账户,免费账户只能创建开源的项目,付费账户可以创建私有项目。对学生有一定的福利,如果你是学生的话,可以用学校分配的邮箱在官网进行申请,申请通过之后,也能够创建私有项目。
要完成本教程,你需要一个 GitHub 帐户,可以在官网进行注册。
下面将分别介绍 GitHub 的基本内容,如仓库、分支、提交、请求合并。在这里以创建 HelloWorld 仓库为例,并学习 GitHub 的其它内容。
1、创建仓库
仓库通常用于组织单个项目。仓库可以包含文件夹和文件、图片、视频呢、电子表格和数据集以及项目需要的任何东西。每个仓库下面都推荐有一个 README 文件,或者是一个包含项目信息的文件。可以在仓库中存储想法、资源,甚至可以与其他人共享和讨论问题。
创建一个新的仓库
1、在左边的栏目中或者头像旁边点击 +,然后点击新建仓库。
2、仓库的名称,我们设置为 HelloWorld。
3、给仓库写一个简单的描述,几句话介绍下该项目。
4、选择初始化仓库的时候,创建 README 文件。
5、点击创建仓库,完成仓库的创建。
2、创建分支
分支是一次处理不同版本仓库的一种方式。默认情况下,仓库下面有一个名为 master 的分支,这是我们的主分支,也是最终的版本。我们使用其它分支来进行实验,在提交到主分支的之前,我们可以对分支进行编辑等操作。当我们在主分支上创建一个分支时,相当于我们从主分支上的复制或者是快照,这样当我们在自己的分支上工作时,如果其他人对主分支进行了更改,我们可以通过 Pull 操作来更新代码。每个分支都是独立的,一个项目可以有多个分支,每个人开发属于自己的一个模块,最后统一合并到主分支。
下面的图展示了
1、主分支(master)。
2、新的分支,名字叫 feature,每个分支都是对功能的扩展。
3、feature 分支被 master 合并的整个过程。
当你在主分支上创建一个分支时,相当于复制,或者快照。如果你在分支上工作时,其他人对主分支进行了更改,你可以通过 pull,进行更新到最新的代码。
你是否保存过不同版本的文件,如:
store.txt
store-zhw-edit.text
store-zhw-edit-reviewed.txt
分支就是用来解决这样的事情,在 GitHub 上,开发人员、作者和设计人员使用分支将 bug 修复和开发功能与我们的主分支分开,当一个变更准备好了,我们就将对应的分支合并到主分支。
创建一个新的分支
1、进到我们刚才创建的 HelloWorld 仓库。
2、点击上方文件列表中的分支 master。
3、在新的分支文本框中输入一个分支名称,readme-edits。
4、选择蓝色的创建分支框或点击回车键。
现在有两个分支,master 和 readme-edits。它们看起来完全一样,但不会太久! 接下来,我们将添加对新分支的更改。
3、修改和提交修改
我们现在所在的 readme-edits 分支,这是一个 master 的副本,接下来让我们做一些编辑。在 GitHub 上,保存的更改称为提交,每个提交都有一个关联的提交消息,这是对你做的修改进行描述,当你提交了更改,其他的贡献者通过描述可以知道你做了什么。
修改和提交修改
1、点击 README.md 文件。
2、点击右边的第二个铅笔图标进行修改。
3、在编辑区,写下关于自己的介绍。
4、填写提交信息,描述本次的更新。
5、点击提交变化按钮。
这些更改这是针对当前的 readme-edits 分支中的 README 文件,现在这个分支包含的内容与 master 上的内容是不同的。
4、请求合并分支(PR)
现在我们已经更改了分支,可以对主分支进行 Pull Request。Pull Request 是 GitHub 上合作的核心,当你发出一个 Pull Request 时,你是在提出你的变更,请求别人审查并将你做出的改变(贡献)合并到他们的分支中。Pull Request 显示来自两个分支内容的差异,这些变化,增加的内容以绿色来表示,减少的内容以红色来表示。
当你完成工作时,你可以进行提交,通过提出 Pull Request 并开始讨论,你可以在 Pull Request 时,使用 @,请求特定的人员或团队来审核。
为改变过的 README 文件,打开 Pull Request
1、点击 Pull Request 选项,然后在 Pull Request 页面,点击绿色的 New Pull Request 按钮。
选择我们创建的分支,readme-edits,以便与 master 进行比较。
查看文件的变化,确保这些都是你要提交的。
当检查好了之后,并没有任何错误,可以点击这个绿色的按钮,创建一个 Pull Request。
点击之后,给出本次 Pull Request 的 title 和描述。
以上都完成之后,点击绿色按钮创建。
5、合并 Pull Request
在这最后一步,是将之前的变更合并到主分支上,也就是将 readme-edits 分支合并到 master 分支上。
1、点击绿色按钮,合并变更到 master。
2、点击确认合并。
到这里你已经学会了在 GitHub 上创建仓库和怎么在别人的项目中贡献自己的一份力量。
你在本次学习中完成了下面的作业。
1、创建一个开源项目。
2、创建和合并分支。
3、改变文件内容,并将变更提交到 GitHub 上。
4、提出 Pull Requet 和合并一个 Pull Request。
PS:如果觉得文章不错的话,还请大家点赞分享下,算是对我的最大支持。
推荐阅读:
一文看懂 Github的更多相关文章
- 一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系
我们知道,不同肤色的人外貌差别很大,而双胞胎的辨识很难.有意思的是Web服务器/Web容器/Web应用程序服务器/反向代理有点像四胞胎,在网络上经常一起出现.本文将带读者对这四个相似概念如何区分. 1 ...
- 一文看懂https如何保证数据传输的安全性的【转载、收藏】
一文看懂https如何保证数据传输的安全性的 一文看懂https如何保证数据传输的安全性的 大家都知道,在客户端与服务器数据传输的过程中,http协议的传输是不安全的,也就是一般情况下http是明 ...
- [转帖]一文看懂web服务器、应用服务器、web容器、反向代理服务器区别与联系
一文看懂web服务器.应用服务器.web容器.反向代理服务器区别与联系 https://www.cnblogs.com/vipyoumay/p/7455431.html 我们知道,不同肤色的人外貌差别 ...
- [转帖] 一文看懂:"边缘计算"究竟是什么?为何潜力无限?
一文看懂:"边缘计算"究竟是什么?为何潜力无限? 转载cnbeta 云计算 雾计算 边缘计算... 知名创投调研机构CB Insights撰文详述了边缘计算的发展和应用前景 ...
- 一文看懂Stacking!(含Python代码)
一文看懂Stacking!(含Python代码) https://mp.weixin.qq.com/s/faQNTGgBZdZyyZscdhjwUQ
- Nature 为引,一文看懂个体化肿瘤疫苗前世今生
进入2017年,当红辣子鸡PD-1疗法,一路横扫多个适应症.而CAR-T治疗的“小车”在获得FDA专委会推荐后也已经走上高速路,成为免疫治疗又一里程碑事件.PD-1.CAR-T之后,下一个免疫治疗产品 ...
- 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了
一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了 转载: 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它 ...
- 转载来自朱小厮博客的 一文看懂Kafka消息格式的演变
转载来自朱小厮博客的 一文看懂Kafka消息格式的演变 ✎摘要 对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化.随着Kafka的迅猛发展,其消息格式也在 ...
- 【转帖】一文看懂docker容器技术架构及其中的各个模块
一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...
随机推荐
- SpriteBuilder代码中弱引用(weak)需要注意的地方
比如在GameScene类中有一个弹出菜单层实例的引用,我们有: @implementation GameScene{ //other ivars __weak GameMenuLayer *_pop ...
- 50行代码实现的一个最简单的基于 DirectShow 的视频播放器
本文介绍一个最简单的基于 DirectShow 的视频播放器.该播放器对于初学者来说是十分有用的,它包含了使用 DirectShow 播放视频所有必备的函数. 直接贴上代码,具体代码的含义都写在注释中 ...
- 苹果新的编程语言 Swift 语言进阶(十五)--协议
协议定义了适合某个特定任务或功能需要的方法.属性和其它需求的一个蓝图.协议本身不提供这些需求的实现,它只是描述了一个任务或功能实现的蓝图. 协议与java 语言中的接口定义类似,都是描述了一个实现可以 ...
- C语言之linux内核可变参实现printf,sprintf
昨天,我发表了一篇用可变参实现的fprintf函数,其实说实话还不完全是可变参实现的,因为用到了FILE * 这样的指针,需要包含stdio.h这个头文件才能实现这个函数,今天我们就来看看,如何抛弃s ...
- 双系统或三系统:Grub Rescue修复方法
我是在装三系统的时候(1.WIN 7 ,2.Ubuntu 12.04 ,3.CentOS 6.4 ),中间步骤出错,造成引导区覆盖,grub乱掉了. 症状: 开机显示:GRUB loading err ...
- ruby和linux shell共同编程的示例
有了shell为毛还要ruby呢?话不能这么说,有些小功能用ruby还是很方便的,比如说字符串的反转再加1功能用shell来写就比较麻烦.str="123456",我们定义一个反转 ...
- Demo2
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- Mybatis 系列7
上篇系列6中 简单地给mybatis的配置画上了一个句号.那么从本篇文章开始,将会介绍mapper映射文件的配置. 这是mybatis的核心之一 一定要学好 在mapper文件中,以mapper作为根 ...
- imgAreaSelect 中文文档
http://www.cnblogs.com/boychenney/archive/2011/10/08/2201996.html 一.技术文档 1.介绍 ImgAreaSelect是一jQuery插 ...
- Django1.8文档阅读手记
主要集中在新特性上. Django1.8好像开始推荐使用python3 Django的QuerySet是延迟加载的,这个文档里面一般会明言,通过Connection SQL显示测试,外键对象也是延迟加 ...