楼主可以尝试着把自己当成一个项目管理者或者经理来看待这个问题,而不是工程师或者程序员。
先说几个假设,虽然不一定完全正确,但是应该具有一定普适性:
工程师大概率是组里面技术能力最强最牛逼的个体需要为团队奉献/贡献工作习惯会影响个人习惯我们再来看一个常见的团队组成:工程师,美工,策划,PM。
美工和策划可能是团队里面技术学习能力或者技术理解能力较弱的群体。因此,当我们在决定项目管理方式的时候,要综合考量团队人员的能力,而不是基于自己的喜好来选择。这就像足球队的教练一样,把合适的人放在合适的体系以及位置上,不然球员踢起来怎么踢怎么变扭(对,我说的就是爱美丽手下的扎卡)。
言归正传,因此我们在选择版本控制工具的时候也会有同样的抉择。在选择的时候,由于美工策划是相对的短板,我们可能需要考虑以下几点:
策划美工用起来方不方便,会不会增加额外工作量工具的学习成本和曲线对于他们而言有多大多陡他们犯错的几率有多大的差异犯错的成本有多大下面模拟下正常工作中可能出现的场景:
1. 美工1创建了a,b,c三个文件,a已经完成了可以发给工程师自己去玩了。
使用SVN:在文件夹窗口右键添加a,直接commit a就结了
使用Git:开一个本地branch 1,添加a,commit a,把develop branch更新到最新,合并branch1到develop branch,最后push。或者push branch1然后再去看一个pull request到develop。
2. 美工2看到美工1对a的改动,想一探究竟。
使用SVN:直接update这个a就行
使用Git:git pull把整个develop或者branch1拉下来。
从上面对比可以看出来,git的使用对于美工策划而言可能不是很直观。可能需要他们费一点脑子去理解这些操作。而且创建和更新某个文件夹或者文件可能是他们唯二会涉及到的操作,为此去理解git的工作方式对于他们而言可能负担过重。毕竟文科生的思维方式和理科生不是很一样所以有些问题的理解对于大多数工程师而言显而易见,但是对于他们可能颇显难度。
而且这个过程中,SVN的操作次数更少,通过UI的集成操作也更加直白减少了他们出错误的机会。
当然,以上只说到了从美工和策划的角度来看待这个事情。但是如果从整个团队出发(我们说到的第二点假设是个人需要为团队奉献),我们还得考虑团队的规模,团队的主观能动性等等因素。
比如一个小团队,2-3个开发,一两个美工策划,SVN应该能得到很好的适配,不需要额外的学习能够快速上手项目。虽然没有分支管理,但是开发人数少,使用起来即使出现冲突,让他们解决冲突也可能比让美工策划使用git的转变来的容易。
但是如果考虑大一点的团队,15-20的开发,2-3个美工策划,大家还分布在不同区域工作。或者团队成员里大家其实都愿意接受新事物新知识,这种时候使用git所带来的协调性和管理优势远高于美工策划所需要付出的学习成本,那么git将可能是一个更好的选择。
最后,说一点,就像其他答案中说到的,存在即合理即有意义。很多技术没有绝对的好和不好,git和SVN也是一样,需要结合使用场景和团队情况才能做出最好的选择。就像之前Spark和Hadoop,都说Spark牛逼,要取代Hadoop了,但是Hadoop依然在。有时候追求高大上并不是最好的,合适的才是最好的。常常开口闭口就是kafka,elastic search,流处理,但是到底应该什么场景用才是最重要的。
个人浅见,希望对楼主有用。欢迎点赞收藏关注^_^