• Git和GitHub的区别

  • GitHub术语解析

  • 配置使用

    • 注册GitHub帐号

    • 创建Git

    • 创建库

    • 复制库

    • 社交化

Git和GitHub的区别

  • Git是一个分布式的版本控制系统,与SVN类似;最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中,所以目前有很多著名的项目都使用Git进行版本控制;

  • 而GitHub是托管各种git库,并提供一个web界面的一个网站(官方地址是https://www.github.com/),可以通过本地的git客户端将自己的代码上传至GitHub;可以在GitHub上建立公共库,作为开源软件或个人使用,也可以付费建立私有库,这样就可以作为公司内部软件的代码管理工具;

GitHub术语解析

Blame

Git中的“blame”特性描述了文件的每一行的最近一次修改信息,包括修改内容、作者和时间等;可用于追踪某软件新特性的添加及引起bug的提交操作;

Repository

库是GitHub的最基本元素,可想象成本地的项目文件夹;一个库包含所有的项目文件(包括帮助文档),并保存每个文件的修改历史;库可以有多个合作开发者,也可以作为公共库或私有库的形式开发;

Private Repository

私有库,是指只能被库的创建者或者合作开发者查看并编辑的库,需要付费使用;

Branch

分支是一个库的并行版本,包含在库内,允许独立的开发而不影响现有主分支(primary or master)的运行;当在分支的修改需要发布时,就可以将分支合并(merge)至主分支(master branch),这样利于多人的分布式开发;

==============================术语分类解析分割线==================================

Pull Request

即代码合并请求,由其它开发者或用户向项目的collaborators提议的修改请求,collaborators觉得修改信息合理有效即接受,否则拒绝;

Merge

将一个分支中的修改内容应用到另一个分支的操作就做合并;若两个分支内的修改内容无冲突,则可以通过合并请求(a Pull Request)或命令行(the command line)完成合并操作;

Clone

克隆,是将GitHub上的库文件整个复制到本地主机上,可以实现离线修改,等上线后再同步至Github上的库即可;

Commit

提交信息,或者称为修改信息,是个人提交的对文件的修改记录;

Fork

对其它开发者的库的个人复制,复制的库存在你自己的账户上,你可以自行修改项目内容而不会影响原始的库,也可以将自己的修改通过合并请求(a pull request)的方式请求原始库的开发者更新你的修改;

Fetch

取回,表示从在线的库上获取最新的修改信息而不需要合并代码,取回的代码可以与你本地的分支代码进行比较;

Push

推送,表示将本地的修改内容推送至线上的库,这样其它的开发者就可以通过GitHub网站访问到你的修改内容了;

Remote

远端版本,即类似于GitHub.com的非本地主机的项目版本,可以连接至本地克隆的版本以实现内容同步;

==============================术语分类解析分割线==================================

User

用户,指个人注册的GitHub账户,每个用户都可以拥有多个公共库或私有库,也可被邀请加入organizations或称为collaborates;

SSH Key

私钥,是GitHub用以验证你本地主机的身份的,并用此密钥加密传输GitHub网站和你本地主机的数据传输,以保证安全性;这个是需要在“Set up Git”步骤中配置的;

Organizations

组织,即多个开发者组成的团体,可包含众多的库和开发团队;

Collaborator

合作开发者,被库的所有者邀请共同开发某一项目,拥有对库的读写权限;

Contributor

贡献者,对项目有所贡献(如提交代码,修复bug等)的开发者,但不具备合作开发者的访问权限;

==============================术语分类解析分割线==================================

Diff

差异,指2个commit或保存的改变间的差异,可以很直观的看出一个文件自上次commit后增加或删除的内容;

Open Source

开源,原指可自由使用、修改和传播的软件,现扩展为一种超越软件的合作哲学,即工件(working materials)在线可用,可被任何人复制(fork)、修改(modify)、讨论(discuss)、并提出修改意见(contribute to);

Markdown

一种轻量级的标记语言,书写简单,不同于html,无需大量的<tag>就可以实现内容的格式化;GitHub上的众多库中的帮助文档就是这种格式,如README.md;

Upstream

上游,对于一个branch或者fork来说,源库的主分支即是其它修改信息的源头,被称为upstream,相对的其它branch或fork就被称为downstream了;

详见https://help.github.com/articles/github-glossary

配置使用

注册账户

注册地址:https://github.com/join

账户注册没什么好说的,按照步骤进行即可;

注:别忘记邮箱认证哦,以后的代码提交都需要依赖你自己设置的主邮箱地址(Promary GitHub Email)哦

GUI客户端下载:http://git-scm.com/downloads

创建Git(Set up Git)

向GitHub提交你的用户名和邮箱地址,用以标识你的commit

注:用户名可以随意,但邮箱地址与绑定在GitHub帐户上的必须一致;

本地保存密码,避免每次通过https去clone一个库时都需要提供用户名和密码

注:在下载git-credential-osxkeychain时,也可将地址直接复制到浏览器,下载速度会更快哦!

若想通过ssh方式去clone自有的库,则需先配置SSH key

生成公钥和私钥

复制公钥内容并配置至GitHub中:cat ~/.ssh/id_rsa.pub

验证测试

注:个人测试未通过,总是超时,只能暂时使用HTTPS方式了。

详见:https://help.github.com/articles/set-up-git#platform-all

创建库(Create repositories)

在GitHub上创建一个新的repo

为新创建的repo添加帮助文档README

创建README文件

提交README文件

推送所提交的内容

为README文件增加内容后再次提交推送

vi README # 编辑内容
git commit -a # 编写内容保存后,会自动提交的
git push origin master # 再次推送一次,以更新GitHub上的内容

访问验证

详见:https://help.github.com/articles/create-a-repo

复制库(Fork repositories)

复制库

克隆复制的库至本地

修改远端指向源库,而非你自己fork后的库;库被克隆后,默认会创建一个指向fork后的库的远端origin哦

推送提交至自己fork后的库中

从源库获取更新,并合并进自己fork后的库的主分支中

创建分支并设置为当前活动分支

分支间切换

合并分支并删除

详见:https://help.github.com/articles/fork-a-repo

社交化(Be Social)

开始找朋友,可以关注某些技术大牛的随时更新哦

追踪某个项目

通过发送Pull Request,将自己的修改代码提交给源项目的合作开发者,以贡献自己的微薄之力

处理事件Issues,主要是指追踪项目出现的问题的集中地

创建组织,合作开发

标星收藏感兴趣的项目

详见:https://help.github.com/articles/be-social

GitHub 配置指南的更多相关文章

  1. Visual Studio Code 配置指南

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...

  2. JBoss7配置指南

    JBoss7配置指南   1.    jboss各主要版本特性... 3 1.1.     jboss4特性... 3 1.2.     jboss5特性... 5 1.3.     jboss6特性 ...

  3. 大数据应用日志采集之Scribe 安装配置指南

    大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...

  4. 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...

  5. Kinfu配置指南

    Kinfu配置指南 欢迎加入Kinfu讨论群:563741937 写给准备配置pcl-kinfu的同学,这个是我的配置方法,已经能用的请无视. 我的配置:Windows7,VS2010(用这个的是不是 ...

  6. mac电脑使用,开发环境配置指南

    mac电脑使用,开发环境配置指南 前端工具链,mac下都很好用 用brew来装软件 用brew cask来装应用 Introduction · macOS Setup Guidehttp://sour ...

  7. Github使用指南-从新手到专家

    转载自:http://www.cnblogs.com/xirongliu/p/4589834.html 个人从刚刚开始接触github,啥都不知道,不会用,不知道能够用来干什么,到现在坚持在githu ...

  8. [转载]SharePoint 2013测试环境安装配置指南

    软件版本 Windows Server 2012 标准版 SQL Server 2012 标准版 SharePoint Server 2013 企业版 Office Web Apps 2013 备注: ...

  9. P6 EPPM 安装与配置指南 16 R1 2016.4

       关于安装和 配置P6 EPPM 本指南告诉你如何自动 安装和配置您的应用程序. 在您开始之前,阅读 先决条件 P6 EPPM配置 (7页). 安装P6 EPPM 您将使用 安装程序 (窗口) . ...

随机推荐

  1. jasmine —— Spies(转)

    Jasmine有称为间谍(spies)的测试双重功能.一个spy可以监测任何函数的调用和参数的调用痕迹.Spy只能存在于定义它的describe()和it()代码块内,而在每一个spec(即it)结束 ...

  2. 理解Underscore中的uniq函数

    uniq函数,是Underscore中的一个数组去重函数,给它传递一个数组,它将会返回该数组的去重副本. 1 ES6版本去重 在ES6版本中,引入了一个新的数据结构——set,这是一种类似数组的数据结 ...

  3. IntelliJ IDEA 2017 完美注册方法及破解方法

    本文使用破解方式注册. 下载破解文件JetbrainsCrack-2.6.2.jar 下载地址: http://idea.lanyus.com/ 开始破解 一.将下载的 JetbrainsCrack- ...

  4. JPA注解实现联合主键

    当表中一个主键不能唯一标识一条记录的时候,就需要使用联合主键了,下面是使用JPA注解实现联合主键的代码 1 首先需要建立一个复合主键类,用来存放需要生产联合主键的属性,该类需要实现序列化. packa ...

  5. BZOJ2438:[中山市选2011]杀人游戏(强连通分量)

    Description 一位冷血的杀手潜入 Na-wiat,并假装成平民.警察希望能在 N 个人里面,查出谁是杀手.警察能够对每一个人 进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是 ...

  6. springboot——我的第一个工程

    前言:使用Spring Boot 微服务架构有一段时间了,打算从今天开始记录使用过程. 一.Spring Boot介绍: 简介:Spring Boot 框架的产生,是为了方便我们简化Spring 框架 ...

  7. 在ASP.NET Core中怎么使用HttpContext.Current (转载)

    一.前言 我们都知道,ASP.NET Core作为最新的框架,在MVC5和ASP.NET WebForm的基础上做了大量的重构.如果我们想使用以前版本中的HttpContext.Current的话,目 ...

  8. Oracle中order by case 用法

    select * from ly_familyinformation ' ' order by case when relation = '购房人/申请人' then when relation = ...

  9. Oracle树形结构数据-相关知识总结

    Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT   *      FROM QIANCODE.TREE_TABLE_BASI ...

  10. C++笔记005:用面向过程和面向对象方法求解圆形面积

    原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 结束了第一个hello world程序后,我们来用面向过程和面向对象两个方法来求解圆的面积这个问题,以能够更清晰的体会面向对象和面向过程. ...