Github

Github:是用来对软件项目进行托管的平台。

掌握github的使用的关键在于理解它的一些关键概念,理解了之后其他都不是问题,下面一一介绍; 
1、仓库 repository 
 说明:一个仓库一般用于存放一个项目,可以包含文件和各种格式的文件。一般也会有一个项目README文件(自述文件,用来保存你想描述的关于这个仓库的信息,可选),创建仓库时可以选择是否公开! 

2、收藏Star

收藏项目。方便下次查看。

3、克隆项目Fork

别人克隆你的项目想做些改进,那他可以Fork你的项目(点击主页右上角的fork按钮),然后他的主页就多出了一个项目。只不过这个项目是基于你的项目的基础。(本质上是在原有项目的基础上新建了一个分支),他可以随心所欲的去修改,丝毫不影响自己的项目。

4、发起请求(Pull Request)

这是基于Fork的,如果别人感觉自己的改进不错,想把自己的修改合到你原有的项目,那他可以发起一个Pull Request(简称PR),然后你就可以收到这个请求,如果觉得可以,就可以接受,然后你的项目就拥有了。


5、关注Watch

关注项目,项目有更新会提醒。

2、分支 branch 

 说明:分支是一次性处理不同版本仓库的一种方式。默认一个仓库有一个主分支;我们使用多个分支来测试和编辑,然后提交给主分支。 
 当我们创建子分支时,你只是给主分支做了一个快照,或者说你生成了主分支的一个即时副本而已。当你处理分支时,如果有其他人正在修改主分支,你可以保存这些修改。图解: 
这里写图片描述
解释: 
   1、有一个主分支 
   2、创建了一个子分支叫做 ‘feature’   
   3、有一个修改子分支内容的“阶段”,修改完后,再合并到主分支上去

3、有时我们会遇到保存一个文件的不同版本,如下: 
  —–服务器配置(初始).txt 
  —–服务器配置(2017-10-2).txt 
  —–服务器配置(2017-10-20).txt 
 是的,github的主要作用是对象的版本控制与管理,所谓的版本其实就是指的这个概念。对象就是你想在github上保存的文件!

4、创建子分支 
这里写图片描述 
 1、进入你创建好的仓库 
 2、选择做左上角处 “branch:master”,下拉输入子分支名称,点击创建分支即可 
 3、现在你有2个分支了,主分支和一个子分支,看起来他们的内容是一样的,但很快就不同了;你将要做一些修改在子分支上

5、修改和提交 
 说明:在github上,”保存修改的内容“这个操作被称为 ‘commit’(提交),每一次‘commit’都有对应的“提交备注”,这个“备注”就像我们平常理解的那样,是为了说明为什么要提交这次修改。 
 如果你的仓库是公开的,其他人就可以看见你的每一次提交修改的内容和修改的理由(如果你做了备注的话)。 
 修改自述文件的操作: 
   1、点击README.md文件 
这里写图片描述 
 2、点击右上角的铅笔图标来修改文件 
这里写图片描述 
 3、添加一些内容在输入框内,然后在最下面提交 
这里写图片描述 
注意:在按钮的上方有两个选项,第一个是直接提交到主分支,第二个是提交到一个新的子分支里面,提交到主分支代表直接修改主分支的内容!

6、发起一个更新请求(open a pull Request) 
 说明:现在你的子分支相对主分支已经有了一些改变,你可以把子分支修改的内容添加到主分支上,也就是使你的修改在主分支上生效!如果你是路人(非主分支拥有者),你能够做的是发起一个更新请求(github上称作open a pull Request,直译过来是不便于理解的); 
 在发起更新请求的过程中,这个pull requests会自动检查你当前的子分支和你想要合成到的主分支(也可以是其他子分支)中的不同之处(增删改的地方)并展示给你看到; 
 发起的时候,你可以向要提交分支的拥有者开启一个对话,直到你发起的更新请求生效或被拒绝。 
 这里有一段过程: 
 提交更新请求–>与(主)分支拥有者进行沟通–>(主)分支拥有者同意你的更新请求—>更新请求在(主)分支上生效 
 即如下面的图 
这里写图片描述 
上图中有两个文字框可以编辑,第一个小框是写本次发起的主题,第二个大框写本次发起的备注,还可以添加表情。 
发起后应该会来到下图页面: 
这里写图片描述

点击图中箭头处的pull requests,到下图页面: 
这里写图片描述

箭头处显示的是所有更新请求(你发起的和别人发起的,针对于这个目的分支的)! 如果你是目的分支主人,比如你收到了别人发起的更新请求,如图中第二个箭头,你点进去就可以看到它的修改内容,然后决定是否把他的更新请求合成到你的分支上!一旦点击合成,从整个github概念上来讲,就表示:你生成了你的一个分支(或者是项目),是公开性质的,你欢迎别人对你的分支(项目)进行修改(bug修复、功能添加),然后就有人提交了更新请求,内容是修复你的(分支)项目中存在的一个bug,你很开心,并让他的修改在你的分支(项目)中生效!   所以,github从角色上来讲,称作为社区更符合它的身份,版本管理平台/代码托管平台只是它的基本功能,当然也是核心功能! 理解了github的作用和功能、定位,你很快就能上手!有时它也会成为HR的一个重要提问点,So,熟练使用它将使你以后的编程生涯之路更加平坦,也能增添更多精彩和乐趣!