公司开发部门GIT与SVN 之争
公司最开始决定是使用GIT作为版本控制 , 也都使用了4,5个月了 , 开发人员也都是20多岁年轻力壮的年轻人 , 每个组的组长也一直在做git使用的培训 , 即使是这样 , 还是遇到了非常大的阻碍 , 主要是如下几点 :
1.代码合并导致代码丢失
2.很多人对代码commit到本地后还要push到remote表示很不解
3.个别同事经常反馈commit的记录丢失
因为很多同事都遇到这3个问题 , 所以普偏反馈建议改为SVN作为版本控制 , 特别是接连好几次有同事反馈了第三个问题 , 我和运维都表示很吃惊 , 表示绝对不会出现丢失的情况 ; 但是公司的领导看到这样的反馈 , 还是建议采纳开发的建议 , 改为SVN , 然后运维就将GIT 改为了SVN 。则关键是公司使用svn的传统。
1.代码合并导致代码丢失
2.很多人对代码commit到本地后还要push到remote表示很不解
3.个别同事经常反馈commit的记录丢失
因为很多同事都遇到这3个问题 , 所以普偏反馈建议改为SVN作为版本控制 , 特别是接连好几次有同事反馈了第三个问题 , 我和运维都表示很吃惊 , 表示绝对不会出现丢失的情况 ; 但是公司的领导看到这样的反馈 , 还是建议采纳开发的建议 , 改为SVN , 然后运维就将GIT 改为了SVN 。则关键是公司使用svn的传统。
个人的一点看法:
对于第一点 , 我觉得完全是开发人员自己的问题造成的 , 如果开发人员不找到自己的原因 , SVN也会出现合并造成代码丢失的问题
第3点问题 , 当时有人说这样的问题 , 我表示也是非常的诧异的 , 我自己也是刚用git , 但是也觉得并不会出现这样的问题 , 之道有一次自己做了这样一个操作 , 在一个branch上checkout了一个commit,然后在这个commit的基础上做了一下修改,然后commit了,最后checkout 原有branch时发现 , 这个commit在branch的log上是不存在的 , 由此我猜测是不是当时那位遇到commit丢失的同事是否也是像我这样操作了 ;
总之用了一个多月的git , 觉得git在需要频繁修改bug的场景下 , 发挥巨大优势的branch比svn还是要好用很多的 ; 发表这个帖子并不是想说git 比svn好用 (LZ在一个公司使用过2年的Microsoft sourcesafe , 那种恶心的版本控制简直不想再提) , 而是提一下自己以及同事在使用git确实会遇到一些影响开发的问题 .
第 1 条附言
看了大家的回复 , 统一回复几点 :
1. 我指的提交丢失并不是物理上的丢失 , 也不是git的问题 , 而是在checkout某个版本之后基于这个版本做了修改然后提交 , 回到master之后在log中找不到这个历史版本上提交的版本了 , 根据刚才的回复我试了一下 , 再次checkout之前修改的版本 , 可以看到HEAD detached at xxx的提示 , 我没有注意到这点是我的疏忽
2.根据回复中提到的强制提交造成提交丢失 , 我觉得是有这种可能的 , 但是当时公司也没有人站出来查证这个问题 , 在出现过几次这个问题之后没有解决领导才决定切换到svn
3.在这里我们不是讨论svn和git谁好用 , 只是讨论一下实践中遇到的一些问题 , 那些说用不好git的同事应该开除 , 我并不这样认为 , 我认为不论是svn还是git , 那些合并不好代码导致其他人代码丢失的同事才是有问题的 , 他们有他们的不足 , 但是并不在我们的讨论范围之内 , 因为我们没有那么多理想的环境 , 那些大公司的混子 , 我也不是没见过
4.那些说我git基础知识差的我也认了, 但是各位 : 作为一个版本控制系统 , 做的最多的不就是提交,合并,更新吗?有多少人会为了这几个基本的操作去系统的研究学习gitpro ? 作为初学者 , 我也不信你有那么强的学习能力把git pro中的每一种场景都结合到日常的操作之中 , 就像开始回复的那些朋友 , 一口咬定git绝对不会丢失提交的占多数 , 能说出强制提交确实会造成提交丢失的也就只有那几个人 , 开始回复的那些朋友 , 你们精通git吗?
5.git确实有git的优点 , 但是那些把svn说的一文不值的人 , 还抨击使用svn的用户 , 你们未免太自大了 ? 请记住 : 存在即为合理 ;
1. 我指的提交丢失并不是物理上的丢失 , 也不是git的问题 , 而是在checkout某个版本之后基于这个版本做了修改然后提交 , 回到master之后在log中找不到这个历史版本上提交的版本了 , 根据刚才的回复我试了一下 , 再次checkout之前修改的版本 , 可以看到HEAD detached at xxx的提示 , 我没有注意到这点是我的疏忽
2.根据回复中提到的强制提交造成提交丢失 , 我觉得是有这种可能的 , 但是当时公司也没有人站出来查证这个问题 , 在出现过几次这个问题之后没有解决领导才决定切换到svn
3.在这里我们不是讨论svn和git谁好用 , 只是讨论一下实践中遇到的一些问题 , 那些说用不好git的同事应该开除 , 我并不这样认为 , 我认为不论是svn还是git , 那些合并不好代码导致其他人代码丢失的同事才是有问题的 , 他们有他们的不足 , 但是并不在我们的讨论范围之内 , 因为我们没有那么多理想的环境 , 那些大公司的混子 , 我也不是没见过
4.那些说我git基础知识差的我也认了, 但是各位 : 作为一个版本控制系统 , 做的最多的不就是提交,合并,更新吗?有多少人会为了这几个基本的操作去系统的研究学习gitpro ? 作为初学者 , 我也不信你有那么强的学习能力把git pro中的每一种场景都结合到日常的操作之中 , 就像开始回复的那些朋友 , 一口咬定git绝对不会丢失提交的占多数 , 能说出强制提交确实会造成提交丢失的也就只有那几个人 , 开始回复的那些朋友 , 你们精通git吗?
5.git确实有git的优点 , 但是那些把svn说的一文不值的人 , 还抨击使用svn的用户 , 你们未免太自大了 ? 请记住 : 存在即为合理 ;
第 2 条附言
并不是在争论GIT SVN谁比谁更好 , 而是讨论团队中使用git的现状 ;
我相信大多数团队都在git的推广过程中都踩过坑 , 就如同@realpg 一样 , 作为git砖家的他也不敢在项目中首选git .
你们有经验就分享经验 , 我作为初学者来学习你们 , 其他初学者也能学到很多东西 ; 但是回复就是一个结论 : svn垃圾 ; git屌炸天 ; 这样真的有意思吗 ?
我相信大多数团队都在git的推广过程中都踩过坑 , 就如同@realpg 一样 , 作为git砖家的他也不敢在项目中首选git .
你们有经验就分享经验 , 我作为初学者来学习你们 , 其他初学者也能学到很多东西 ; 但是回复就是一个结论 : svn垃圾 ; git屌炸天 ; 这样真的有意思吗 ?
yian