请大家去看git官网的文档哈,官网文档确实写的很好,不用去看笔者所写的文章.
git - book
- Git 和 Hub分开来看哈:
- git中文翻译是饭桶、卑鄙小人.(在英式英语中,翻译为不愉快的人)
- hub中文翻译是中心的意思.
- lab中文翻译是实验室,研究室的意思.
- 关于git为啥叫git,如有条件,请打开git wiki百科.如无法打开,请参照以下内容,以下内容来自wiki百科:
林纳斯·托瓦兹讽刺地嘲笑git这个名字(在英式英语俚语中表示不愉快的人)
源代码的自述文件进一步阐述了:
The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your way):
- random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
- "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
- stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
林纳斯·托瓦兹在编写第一个版本时就使用了“git”这个名称。 他将工具描述为“愚蠢的内容跟踪器”,并将其描述为(取决于您的方式)
- 随机的三字母组合,很明显,实际上并未被任何通用的UNIX命令使用。 它是“get”的错误发音,这一事实可能相关,也可能无关。
- “全球信息跟踪器”:您的心情很好,它实际上对您有用。 天使唱歌,一盏灯突然充满整个房间。
- 愚蠢的。鄙视和卑鄙的。简单。从俚语字典中选择。
- Git是什么?菜鸟教程中的定义是:Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.
- 什么是开源软件 wiki百科,维基中的解释是开放源代码的简称,以下内容摘自wiki百科:
开源软件(英语:open source software,缩写:OSS)又称开放源代码软件,是一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。开源协议通常符合开放源代码的定义的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容做比较[[1]](https://zh.wikipedia.org/wiki/开源软件#cite_note-1)。 开源软件的英文“open-source software”一词出自自由软件的营销活动中[2]。
- 什么是分布式,维基中没有该词条的解释,推荐该篇文章,大家都在说的分布式系统到底是什么;笔者很想为分布式做一个定义,确实很难定义.分布 百度百科中解释的意思:是指散布(在一定的地区内).强硬解释是指散布的一种方式.内容分布式、计算分布式、存储分布式,强硬解释为一种事物的散布方式.
分布是汉语词汇,拼音fēn bù,是指散布(在一定的地区内),如:人口分布图,商业网点分布得不均匀。药代动力学名词:药物吸收进入血液后,还必须通过多种细胞膜屏障进入细胞间液或细胞内液中才能达到作用部位,药物由血液向脏器组织的转运过程称分布。分布还是美国描写语言学中的一个专门含义的术语。
- 什么是版本控制系统.建议将维基百科中该篇文章读完.以下内容来自维基百科:
版本控制(英语:Version control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步。
最简单的版本控制就是保留软件不同版本的数份copy,并且适当编号。许多大型开发案都是使用这种简单技巧。虽然这种方法能用,但是很没效率。一是因为保存的数份copy几乎完全一样,也因为这种方法要高度依靠开发者的自我纪律,而常导致错误。因此,有人开发出了将部分或全部版本控制工作自动化的版本控制系统。
差分编码(重要)
大部分的版本控制软件采用差分编码:只保留文件相继版本之间的差异,这个方法可以更有效的存储数个版本的文件。
中央式系统与分布式系统(重要)
大部分的软件开发案,会有好几个开发人员同时工作。如果两个人员同时要改变同一个文件,而没有管理访问权限,很可能会改写彼此的工作。
所以权限管理控制系统会在两种方法中择一解决:采用中央式系统,由中央权威管理访问权限;或是像分布式系统容许多个单位同时进行,包括同时更动同一文件。传统上版本控制系统都是采用中央式系统:所有版本控制的工作在一个服务器进行,由中央权威管理访问权限“锁上”文件库中的文件,一次只让一个开发者工作。
2000年后,TeamWare、BitKeeper、和GNU开始用分布式系统:开发者直接在各自的本地文件库工作,并容许多个开发者同时更动同一文件,而各个文件库有另一个合并各个改变的功能。这个方式让开发者能不靠网络也能继续工作,也让开发者有充分的版本控制能力,而不需经中央权威许可。分布式系统仍然可以有文件上锁功能。
分布式系统Linux内核的发明人林纳斯·托瓦兹就是分布式版本控制系统的支持者,他开发了当前被开源社群广泛使用的分布式版本控制系统Git。
关于版本控制系统介绍,推荐一篇论文《软件配置管理中版本控制的研究》,可以看下.关于软件控制的各种名词,重新开一篇文章介绍下.
- 什么是开源软件 wiki百科,维基中的解释是开放源代码的简称,以下内容摘自wiki百科:
- 那么,再重点介绍一下版本控制系统.
- 目前版本控制系统主要有三种:CVS、SVN、和Git.
- CVS:全称是:Concurrent(并发的,一致的) Versions System(又有一种叫法是:Centralized Version Control Systems),具体详细阐述请看维基中协作版本系统介绍,关于CVS阐述,找到该篇文章.CVS 简介 .关于CVS的部分历史,可以在Subversion该词条中的历史中可以看到.在此不做多的介绍哈.
- SVN:全称是:Apache Subversion,简称是SVN.Subversion中文翻译是:颠覆、破坏.推荐学习一下维基中Subversion词条信息.
- Git,不是缩写名词.推荐阅读一下维基中Git词条信息.
- Git大致的工作原理.推荐看下该篇文章版本控制(六)--git介绍&原理.在阅读本篇文章时,笔者又遇到了一个问题,什么是备份、什么是镜像以及什么是快照.在《什么是拷贝、复制、备份、副本、镜像、快照?》文章中可以阅读.笔者很想对版本控制(六)--git介绍&原理该篇文章进行解读一下,将该篇文章进行总结如下:
- 版本控制系统的发展是由:本地版本控制系统 --> 集中化的版本控制系统 --> 分布式版本控制系统.
- 本地版本控制系统操作比较繁琐,且容易搞混乱数据.
- 集中化版本控制系统的由一台中央服务器来对管理数据,保存所有文件的修订版本.而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新.假如中央服务器宕机,那么所有的客户端都没法工作.
- 分布式版本控制系统,是指将所有内容(文件)都分布在所有的客户端上.客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜 像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。当然分布式版本控制也是需要一个中央集中的服务器.
- 在此可以解释的问题是,Git是一种软件版本控制软件,GitHub、GitLab充当的是那个中央集中服务器的角色.
- 目前版本控制系统主要有三种:CVS、SVN、和Git.
- 看完以上,应该将Git定义为:Git是一个客户端软件(装在电脑上),作用是在软件开发过程中,进行版本控制.
- GitHub是啥?和GItLab是啥?如有条件,建议打开阅读GitHub的维基百科内容.
本篇文章阐述了git是什么 和 github一类的软件是什么?并没有介绍Git是怎么使用的相关问题,望读者知悉.