git 不行用了为啥_为什么弃用SVN而用Git

现在用SVN,用的还还行,为啥要切换到Git呀?这个问题的本质就是给一个使用Git的理由,仔细考虑了一下,总结了以下几个场景,是SVN无法应对的,至少是有些力不从心的。

1、Git大部分命令在无网的情况也可以执行

如果你端着个笔记本在公司外面写代码,比如咖啡馆之类的地方,一个功能做好了,如果连不上wifi的话,你会发现使用SVN的话是无法提交代码的。有人会觉得,提交不了就不提交了,接着做下一个功能就好了,等连上网了再提交。如果你也是这样想的,说明你对版本管理工具的依赖还不够深。现在如果没有版本管理的话,我都不太敢写代码,举个例子,假设你做好功能1却没有提交就继续做功能2了,如果你功能2做错了,你是无法恢复到开始做它之前的样子的。即便你没有做错,也有可能记不清功能1和功能2都分别改动了。

如果你使用Git的话,Git在不联网的情况下,大部分的版本控制功能是可以使用的,你开发完功能1后,可以直接提交到本地仓库,然后继续开发功能2。如果功能2写错了,直接通过git reset来撤销到上次提交时的样子。你也可以通过git diff来查看你的功能2已经修改了哪些代码。一切改动都是可以追踪的。

2、Git允许灵活地使用分支(branch)

假设你在开发一个探索性功能,改动比较大,并且两天后不幸以失败告终了。然后你需要开发下一个功能了,也就意味着这个探索性功能的所有代码都需要删掉,那么,你这两天的工作如何保存下来呢?当然,你也可以选择把当前的代码拷贝一份,反正所有代码都在。但这样的话,即便你在一个月后在你拷贝出的副本上把这个探索性功能实现了,你却不知道你具体改了哪些地方,如何与你最新的代码合并就成了一个大问题。很明显,你需要把当前的代码提交到一个新的分支上了,然后继续在当前分支继续开发。Git允许你自由地创建分支,如果使用SVN的话,恐怕你就需要让权限更大的人(很可能是你的领导)在服务器上给你开一个分支了。

也许你还会遇到这种情况。你公司最开始为客户A开发了一套软件,后来,老板发现客户B也有这方面的需要,但是需求与客户A略有不同。再后来,你又有了客户C。。。从此以后噩梦开始了,你的代码被复制了三份,他们有大量重复的地方,如果需要修改什么东西,可能需要改三处。如果你使用Git的话,可以把三个客户的都需要的功能(或称为基础功能)放到master分支,为每个客户各拉一个分支来存放他们各自的定制功能,以后再迭代的话,基础功能就在master分支开发,如果客户C提出了新的需求,你就切换到客户C的分支,先合并master分支,把最新的基础功能拿过来,然后再开发。如果客户B提了新的需求,你就切换到客户B的分支,仍然先合并master分支,把最新的基础功能拿过来,然后再开发。从而使这个事情更有条理。

3、Git不害怕单点故障

Git之所以不太害怕单点故障,是因为Git是分布式版本管理工具,每个人的电脑上都是一个完整的Git仓库。而SVN则是集中式的版本管理工具。如果SVN服务器挂掉了,那么后果是很严重的。你可能会觉得,服务器挂了不要紧,代码丢不了的,我们的电脑上都有备份呀。对,你的代码是都还在,但是你的提交记录没有了,你的改动记录没有了,你不知道当初你做某个功能时到底都改了些什么,也不能checkout到某一次提交(可能是某个重要历史版本)看看当时的样子了。也许当初开发了某个功能后来被砍掉了,你直接把代码删了,寻思着反正SVN上有历史记录。但如果你遇到了服务器单点故障,这个代码就找不回来了。

现在,也许你更理解什么是分布式版本管理了,也更理解什么是一个完整的Git仓库了(而不仅仅是代码都在)。

注意:本文归作者所有,未经作者允许,不得转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值