Git是什么
Git是一个分布式的版本控制系统,用于跟踪文件随时间变化状态的一款软件。换言之,在Git中参与项目的每个程序员不仅能够拥有文件的当前状态,还能拥有项目完整的历史记录。
Github是什么
Github是一个网站,网址为https://github.com。你可以向该网站上传一个Git数据库副本,接下来及以后的篇幅我都将用来详细介绍如何使用Github这个网站。
关键概念
commit(提交)
字面上的意思,无论你是将一个或多个文件修改保存到Git的历史纪录,都会创建一个新的提交,可以在github网页的commit按钮查看提交记录以及提交的详细信息。
commit message(提交消息)
这是与提交相配套的一个信息。每次作出提交的时候,你需要提供一个消息来描述为什么要进行这种改动。当以后试图理解为什么实现特定的修改时,提交的这一消息是非常有用的。
branch(分支)
存放在一侧的独立的系列提交,你可以使用它来进行一个实验或者创建一个新的功能。我的理解是,整个项目相当于一颗大树的主干,我们可以从主干中分出部分来完成我们需要完成的功能,而不影响到主干。
master branch(主分支)
无论什么时候创建一个Git项目,都会创建一个默认的分支,称为主分支。这个分支一旦准备发表,你的工作则应完全停止。
feature branch(功能分支)
顾名思义,功能分支就是在创建一个新的功能的时候创建的分支。如果确保无错,可以合并到主分支中。
release branch(发布分支)
如果你为满足客户需求而必须支持旧版本的软件时,你需要发布一个发布分支来存放必要的补丁或更新记录。注意:功能分支和发布分支没有任何技术差别。
merge(合并)
合并是将一个分支完成的全部工作归并到另一个分支。通常情况下是将一个功能分支合并到主分支中。
tag(标签)
我们可以使用标签来引用一个特定历史的提交。常用于记录发布版本,据此可以知道发布的是哪个版本的代码以及何时生成的。
check out(查看)
就是平时理解的查看意思,你可以查看文件,查看在一个分支上完成的所有工作,查看任何类型的提交。
pull request(拉请求)
用来讨论可能的功能,你可以对当前项目提出一个拉请求来描述你认为可以加上的功能。拉请求可使你了解当前正在开发中的bug修复和功能建议,拉请求通常与一个问题相连接,但通常还有一些问题还没有人开始做,因此这些问题没有拉请求。
issue(提出问题)
你可以提出issue,用来讨论功能,跟踪缺陷或两者兼备。
wiki(维基)
wiki是一个轻量级的web页面创建方式,创建的web页面之间用简单的连接相联系。通常用来进行文档记录。
clone(克隆)
通常当我们需要从github下载一个项目的副本,下载的过程就是clone。
fork(分叉)
有时候你不具备直接改变一个项目的许可,但是又想对这个项目进行修改。这时你首先需要在github上你的用户账号下复制这个项目,这一过程被称为分叉存储库。然后你可以克隆、修改,并使用拉请求将其提交回最初的项目。分叉和克隆的区别在于,克隆是下载项目到本地,分叉是在你没有许可修改项目的情况下,你可以通过分叉来对项目进行修改并提交修改。
如果你对以上概念无法理解的话,也不要灰心哦,可以继续跟着我一起往下学,再慢慢回过头来仔细体会这些概念。
参考书籍:《GitHub入门》 Peter Bell&Brent Beer