假设你在的公司要上线一个新功能,大家开发团队为实现这个新功能,写了大约5000行代码,上线没2天,就发现这个功能用户并不喜欢,你老板让你去掉这个功能,你怎么办?你说简单,直接把5000行代码去掉就好了,可是个人亲,说的简单,你的这个功能写了3周时间,但你还能记得你是新增长了哪5000行代码么?因此你急须要一个工具,能帮你记录每次对代码作了哪些修改,而且能够轻易的把代码回滚到历史上的某个状态。 这个神奇的工具就叫作版本控制。 linux
版本控制工具主要实现2个功能:git
在开发中,这是刚需,必须容许能够很容易对产品的版本进行任意回滚,版本控制工具实现这个功能的原理简单来说,就是你每修改一次代码,它就帮你作一次快照github
一个复杂点的软件,每每不是一个开发人员能够搞定的,公司为加快产品开发速度,会招聘一堆跟你同样的开发人员开发这个产品,拿微信来举例,如今假设3我的一块儿开发微信,A开发联系人功能,B开发发文字、图片、语音通信功能,C开发视频通话功能, B和C的功能都是要基于通信录的,你说简单,直接把A开发的代码copy过来,在它的基础上开发就行了,能够,可是你在他的代码基础上开发了2周后,这期间A没闲着,对通信录代码做了更新,此时怎么办?你和他的代码不一致了,此时咱们知道,你确定要再把A的新代码拿过来替换掉你手上的旧通信录功能代码, 如今人少,3我的之间沟通很简单,但想一想,若是团队变成30我的呢?来回这样copy代码,很快就乱了, 因此此时亟需一个工具,能确保一直存储最新的代码库,全部人的代码应该和最新的代码库保持一致.windows
不少人都知道,Linus在1991年建立了开源的Linux,今后,Linux系统不断发展,已经成为最大的服务器系统软件了。bash
Linus虽然建立了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?服务器
事实是,在2002年之前,世界各地的志愿者把源代码文件经过diff的方式发给Linus,而后由Linus本人经过手工方式合并代码!微信
你也许会想,为何Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?由于Linus坚决地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,并且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。分布式
不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续经过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,因而Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,受权Linux社区无偿使用这个版本控制系统。工具
安定团结的大好局面在2005年就被打破了,缘由是Linux社区牛人汇集,难免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不仅他一个),被BitMover公司发现了(监控工做作得不错!),因而BitMover公司怒了,要收回Linux社区的无偿使用权。网站
Linus能够向BitMover公司道个歉,保证之后严格管教弟兄们,嗯,这是不可能的。实际状况是这样的:
Linus花了两周时间本身用C写了一个分布式版本控制系统,这就是Git!一个月以内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?你们能够体会一下。
Git迅速成为最流行的分布式版本控制系统,尤为是2008年,GitHub网站上线了(github是一个基于git的代码托管平台,付费用户能够建私人仓库,咱们通常的免费用户只能使用公共仓库,也就是代码要公开。),它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
历史就是这么偶然,若是不是当年BitMover公司威胁Linux社区,可能如今咱们就没有免费而超级好用的Git了。
要使用Git,第一步固然是安装Git了。根据你当前使用的平台来阅读下面的文字:
首先,你能够试着输入git
,看看系统有没有安装Git:
1
2
3
|
$ git
The program
'git'
is currently not installed. You can
install
it by typing:
sudo
apt-get
install
git
|
像上面的命令,有不少Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
若是你碰巧用Debian或Ubuntu Linux,经过一条sudo apt-get install git
就能够直接完成Git的安装,很是简单。
下载地址: https://gitforwindows.org/
能够参考:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000