上来就亮明观点,符合我的性格。呵呵呵。

为什么不看好 git 呢?

首先,我们来看看 git 产生的背景

git 是 Linus 开发的,最初的目的,是为了管理 Linux 系统的源代码。这是一个分层集中式版本控制系统,并非网上人云亦云的分布式版本控制系统。以下作详细说明。

Linux 的开发习惯,与通常软件公司的开发习惯不同:

Linus,或者加上其它少量关键人员,负责 Linux 核心代码的维护,他们可能自己参与开发,也可能接受别人提供的软件包(软件功能增强、改进、或bug修复),合并到已有的代码库里。在接受其他人提供的软件包时,期望对方已进行完整测试、代码没有明显的问题、代码规范也符合相应的规定,不然,这几个关键人员,有权拒绝此软件包加入到Linux 核心代码。并且,同一个功能,可能有多个贡献方来提交软件包,这几个关键人员可选择其中之一(多个贡献方提交的软件包里选一个),加入Linux 核心代码。

单个软件包本身可能也比较复杂,由另一批少量关键人员、加上大量的开发人员进行开发。他们也按上述习惯,在接受其他组织/人提供的更小级别软件包时,期望对方已进行完整测试、代码没有明显的问题、代码规范也符合相应的规定,不然,这几个关键人员,有权拒绝此更小级别软件包加入到此软件包。并且,同一个功能,可能有多个贡献方来提交更小级别软件包,这几个关键人员可选择其中之一(多个贡献方提交的更小级别软件包里选一个),加入此软件包。

当然,有些情况下,软件包的层次会更多。

以上就是分层集中式的开发模式。

问题在于,大多数公司,或者临时/长期组建的软件项目组,都不是按 Linux 核心组的开发习惯,展开工作的

对于一般公司来说,任何员工的每个小时的工作,都是人力成本,换句俗话来说,都是钱、是费用。为避免因单个程序员电脑硬盘损坏造成的代码丢失,造成公司的费用损失,很多公司要求,每个程序员,每天下班前,都需要 check-in 代码到代码库,那些编译不能通过的部分代码,注释起来,仍要check-in 代码到代码库。

极少有公司去要求:那个谁,你负责的权限模块,全部开发、测试完成后,再放到公司级版本库;那个谁,你负责的订单模块,全部开发、测试完成后,再放到公司级版本库...

因此,Linux 核心代码的管理模式,不具有通用性。

基于 Linux 核心代码的管理模式而开发出来的源代码版本管理工具 git ,也不具有通用性。不适合于大多数公司。

请注意,"分布式"、或"分层集中式"这些词,是时髦的词汇,但绝大部分场合,不需要。

在无需"分布式"的情况下,硬要套用"分布式"的做事方式,只会带来更多的不方便、付出更多的人力成本。

EJB 就是一个很好例子。

单从概念、技术角度,相比之前/同期的同类软件技术/产品/架构, EJB 均是优秀的。被广泛滥用之后,大家都发现,这玩意儿太难用了,无论是开发论坛、员工考勤、企业信息管理、电子商务,还是其他的软件系统/软件工具,绝大多数情况下,EJB 都只会带来技术难度及增加开发工作量。

这还是因为,“分布式”的技术,只适合用于“分布式”的场景下。不具有通用性。

知乎网上,也有很多对比讨论(git vs SVN)。

最明显的一点差别,在于 git 的日常两次提交习惯(第一次提交到本地个人电脑版本库、第二次提交到公司集中版本库),相比 SVN 的一次提交习惯,需要更多的培训、学习、适应时间。

且日常操作,更显麻烦(操作步骤多一倍)。

当然了,对于单个员工来说,学了不合适的时髦技术,可以增强找工作的个人竞争力;对于公司、团队来说,使用了不合适的时髦技术,增大了总体成本、变相降低了公司的竞争力。

值得不值得用,就看站在哪个角度来判断了。

================================================================================================

========================转发请注明来源:https://www.cnblogs.com/jacklondon/ ===========================

================================================================================================

不看好 git ,也看不懂为什么那么多人去使用 git的更多相关文章

  1. Git复习(五)之多人协作、git push失败、git pull失败

    多人协作 多人协作时,大家都会往master和dev分支上推送各自的修改. 现在,模拟一个你的小伙伴,可以在另一台电脑(注意要把SSH Key添加到GitHub)或者同一台电脑的另一个目录下克隆: $ ...

  2. Linux命令学习神器!命令看不懂直接给你解释!

    大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务. 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么 ...

  3. 我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。

    业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...

  4. 对于挑战书上的很久之前都看不懂的DP看懂的突破

    突破一..牢记问题概念 并且牢记dp状态方程 突破二..一直有一个求和dp转化成O1dp递推的式子看不懂.. 看不懂的原因是..没有分清求和符号作用的范围 提醒:以后遇到求和符号一定明确其求和的式子的 ...

  5. QQ地图api里的 地址解析函数 看不懂 javascript_百度知道

    QQ地图api里的 地址解析函数 看不懂 javascript_百度知道     QQ地图api里的 地址解析函数 看不懂 javascript    2011-09-18 12:18     匿名 ...

  6. thinkphp学习笔记10—看不懂的路由规则

    原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...

  7. Dynamics 365-CRM又报看不懂的错误了

    在CRM上执行各种操作,时不时会碰到各种问题,尤其是CRM环境里包含越来越多定制的时候.有的问题在CRM弹出的错误提示框,一目了然:而有的,可能就是简单的提示:SQL Error. 这个时候我们可能都 ...

  8. 一篇自己都看不懂的Matrix tree总结

    Matrix tree定理用于连通图生成树计数,由于博主太菜看不懂定理证明,所以本篇博客不提供\(Matrix\ tree\)定理的证明内容(反正这个东西背结论就可以了是吧) 理解\(Matrix\ ...

  9. Git入门看这一篇就够了! (转)

    Git 的三种状态 Git 有三种状态,你的文件可能处于其中之一: 已提交(committed):数据已经安全的保存在本地数据库中. 已修改(modified):已修改表示修改了文件,但还没保存到数据 ...

随机推荐

  1. go变量

    go基础 go变量(静态) package main import "fmt" func main() { //申明变量 var zx int //变量赋值 zx=10 //输出变 ...

  2. linux中安装tensorflow

    liunxsudo apt-get install python-pip python-dev python2.X -> pippython3.X -> pip3 pip --versio ...

  3. linux进程间通信之共享内存学习记录

    进程 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed). 广义定义:进程是一个具有一定独立功能的 ...

  4. stream,做减法,优化搜索代码。

    做一个搜索,三个输入条件,求这个条件的交集.起初我的思路是按照操作的流程,一步步的来做这三个筛选. let searchResults = []; //step1 根据id搜索,得到一个子集. if ...

  5. 全面解析JVM加载中初始化的时机

    JVM类加载过程 JVM类加载过程分为几个阶段,分别是加载.验证.准备.解析和初始化.加载是把二进制字节码载入内存,验证是校验字节流中包含的信息是否符合当要求,准备是为静态变量分配内存并设置静态变量初 ...

  6. SpringBoot使用注解(@value)读取properties(yml)文件中 配置信息

    为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性. 1. 两种使用方法1)@Value("#{co ...

  7. FF.PyAdmin 接口服务/后台管理微框架 (Flask+LayUI)

    源码(有兴趣的朋友请Star一下) github: https://github.com/fufuok/FF.PyAdmin gitee: https://gitee.com/fufuok/FF.Py ...

  8. 如何对IP地址进行子网划分?

    在网络行业,子网划分是必须掌握的的基础知识点,下图是IP地址分类: 子网划分主要掌握的是划分思路,接下来我以192.168.1.72/27的IP划分做为例子: CIDR:无类域间路由. 可以看出192 ...

  9. luogu P1102 A-B 数对 |二分查找

    题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 好吧,题目是这样的:给出一串数以及一个数字 C,要求计算出所有 A- ...

  10. 用JS实现HTML转PDF

    遇到这个需求,现把实现代码整理出来,方便大家参考 <!-- html转PDF --> <script src="https://cdnjs.cloudflare.com/a ...