*什么是github

分布式版本控制(j_0004.gif什么鬼=_=)

*什么是版本控制

(场景一)


就是你写一个c++/c语言的项目【目前我只学习了c++和c语言】(可能很大,需要很多人去写)但是你和你的小伙伴不可能一次就成功对吧,肯定在开发的过程,需要对当前的项目不断进行优化,第一个版本的bug可能第二个版本就修补了,然后又有新bug产生了,如果你产生了第三个版本,但是却出现了更严重的bug,你可能就想(WTF!!!),然后你第二个版本就显得很重要,你可以通过github将你每次的更新进行提交,让github帮你管理~~~~

(场景二)

辣鸡如我和我的小伙伴,可能还接触不到大项目,在现阶段,我们每天都在进行写小程序来锻炼自己的大神之路,辣么问题来了,有没有感觉写的很多,但是却在查找的时候很费劲,并且有时候手贱贱的,在存储空间不够的时候,我们会特别忍痛删了好久之前的程序,github可以帮你将每次写的程序进行管理和保留,留给你一个清晰的世界~~~~~~j_0069.gif

(场景三)

作为程序猿的我们,github给我我们更丰富的精神世界,那就是开源项目

*版本控制的历史变迁

(第一个阶段)

史前时代:diff 和patch

diff:diff命令(difference)来比较两个文本文件或者目录的差异

eg:diff  -u  hello world>diff.txt

解释:比较hello文件(原始文件)和world文件(目标文件)的差异,保存差异到diff文件中


 patch:diff的反操作

eg:cp hello world

       patch -R world<diff.txt  

解释:通过diff文件可以找到删除了的hello文件


(第二个阶段)

CVS的时代----开启版本控制的爆发

wKioL1cLSRKi_KYMAAGHerpelHc311.png

(第三个阶段)

SVN的时代----集中式版本控制的集大成者

wKiom1cLSHqjStewAAHn8IYVVB0579.png

(第四个阶段)

git的时代---linus的伟大作品

wKiom1cLSJWxSWJQAANYlWytTW4736.png