??????? Git是一个运行在电脑上的版本控制软件,而Github是基于Git这个版本控制软件而打造的网站,在这个网站上可以托管仓库。
??????? 版本控制(Revision control)是一种在开发过程中用于管理我们对文件、目录或者工程的修改历史,方便我们查看更改历史记录,备份历史记录以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技术。
??????? Git的核心功能就是“存档”,它是把代码的变化以提交(commit)为单位记录下来,方便代码写错后进行“读档”操作。
??????? 大家用代码编写程序的时候都会有一个代码库,而代码库一般就是个文件夹。我们都知道,一个代码项目一般会以一个文件夹作为根目录。当你在这个代码项目里,你在初始化这个Git,这个文件夹就成了一个仓库。这个仓库对应的文件夹里面的代码变更就会被git记录下来,所以你的每一个提交也都是针对这个仓库(repository)进行的。
??????? 分支(branch)通常用于分工协作,为不同的开发者的协同工作带来了极大的便利。具体而言,就是为了完成一个共同的项目,可以根据不同的人和不同的需求开辟不同的分支,大家各自完成自己的任务,互不影响,最后再把各个分支合起来组成一个成品。
??????? 对于上述概念:仓库(repository),一般是针对本地项目进行一个初始化,如果只能在本地进行操作的话,也就谈不上协同工作了,多个项目的协同开发者也就无法一起工作了。所以为了解决这一问题,github就可以把这个仓库存在网站上。这样大家就都可以从这个网站上去存代码、下载代码,同时将分支、提交等也都保存在这个网站上,达到代码共享的目的。甚至在主人允许的情况下,还可以修改代码。
????????