公司开发部门 GIT SVN 之争

2015-07-28 11:37:47 +08:00
 Navee
公司最开始决定是使用GIT作为版本控制 , 也都使用了4,5个月了 , 开发人员也都是20多岁年轻力壮的年轻人 , 每个组的组长也一直在做git使用的培训 , 即使是这样 , 还是遇到了非常大的阻碍 , 主要是如下几点 :
1.代码合并导致代码丢失
2.很多人对代码commit到本地后还要push到remote表示很不解
3.个别同事经常反馈commit的记录丢失
因为很多同事都遇到这3个问题 , 所以普偏反馈建议改为SVN作为版本控制 , 特别是接连好几次有同事反馈了第三个问题 , 我和运维都表示很吃惊 , 表示绝对不会出现丢失的情况 ; 但是公司的领导看到这样的反馈 , 还是建议采纳开发的建议 , 改为SVN , 然后运维就将GIT 改为了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确实会遇到一些影响开发的问题 .
20616 次点击
所在节点    程序员
215 条回复
codeyung
2015-07-28 14:05:26 +08:00
一句话 svn简单易用 适用范围广泛
git 伪GDS 小众 自嗨 OK
barbery
2015-07-28 14:06:04 +08:00
git才是最优解,当然你可以用SVN。。。
zythum
2015-07-28 14:06:59 +08:00
@chmlai svn也可以分支开发。 说一个东西不好用。也需要先了解那个东西。不然容易打脸。
zeeler
2015-07-28 14:07:38 +08:00
用git和svn都无所谓,git好处就是做分支开发方便,如果你们团队分支需求不强烈,用svn也不错,毕竟权限管理很细致
lilydjwg
2015-07-28 14:13:51 +08:00
咦 svn 现在支持合并了?

你这明显是没有看或者没有看明白 git 提示信息的问题。默认配置下,git 会告诉用户处于什么状态、可以进行什么操作之类的信息。如果遇到看不懂的消息就应该请教懂的人,或者看文档。如果理解了所有提示信息还出现这种问题就说明你们教的人有问题。
ferock
2015-07-28 14:14:34 +08:00
存在即为合理怎么成了万金油了?
lilydjwg
2015-07-28 14:15:05 +08:00
@codeyung 可是我依旧不会用 svn,遇到 ! 就无解了。文档现在有中文版的了么?我是指人翻译的,不是那种读起来比英文还吃力的类机翻文字。
lilydjwg
2015-07-28 14:15:57 +08:00
@ferock 因为使用这句话的绝大部分人根本不理解这句话的原始含义(别问,我也不懂)。
Navee
2015-07-28 14:17:16 +08:00
@Andiry 这是我今天我在linux环境里面复现我的操作时看到的 , 在eclipse里面这么操作并不会有任何的提示 . 作为版本控制 , 我关心的是所有的代码变化 , 平时用linux不多 , 所以习惯了在eclipse的history视图中查看最近的修改 ; 通过我描述的操作(虽然我也知道是不正确的操作) , eclipse提示成功之后在history视图中找不到任何的相关信息 , 这就是我的困惑.
Navee
2015-07-28 14:22:17 +08:00
@ferock 此处存在即为合理2点含义:
1 . svn并没有你们说的那样不堪 , 还是有很多人需要svn的优点
2 . 萝卜白菜各有所爱
请勿过度脑补
codeyung
2015-07-28 14:22:22 +08:00
@lilydjwg svn的成本颇低 包括学习 这个个人喜好吧 不过还是团队导向重要 你可以哇git没问题 但是工作的地方用svn的话也要用啊 svn有手册Java一枚 自己的代码用github 公司的项目用svn 插件支持的不错 怎么会出现Lz说的问题 好奇怪
Andiry
2015-07-28 14:25:13 +08:00
@Navee 如果eclipse隐藏了提示,那这是eclipse的锅。这种提示是不应该隐藏的

git作为一个Linus开发的软件,如果给出了提示那一定是非常重要的提示,不然他就不会提示。。。
codeyung
2015-07-28 14:25:21 +08:00
@Navee 目前除了intelliJ 就在用eclipse 的mars svn插件很齐全 包括对比工具 和历史资源图 LZ 还有每个版本version ID 和具体的东东 感觉够我用了 intelliJ的git就不说了 很好很强大
chmlai
2015-07-28 14:28:19 +08:00
@zythum svn 当然能开分支, 但是 git 的分支比 svn 方便多少? 这不算绝对优势?
nuc093
2015-07-28 14:29:58 +08:00
我收集了下gitflow资料 并戳了个图

http://jnuc093.github.io/gitflow/
learnshare
2015-07-28 14:31:16 +08:00
上线之前先测试;写代码之前先 demo;用 Git 前先开个测试项目学习用法。

多练习一下才能正式用起来,直接用导致代码丢失也是很大的问题。
Navee
2015-07-28 14:31:46 +08:00
非常同意 @realpg 的观点
我觉得在工作中 , 你可以把自己当做git砖家 , 但是以git砖家的熟练程度来要求同事是不对的 , 除非每次在代码提交这种基础的事情上遇到了问题 , 你都乐意帮他解决(或是他乐意找你来解决) ; 所以为何不能退一步呢 ? svn 也不是一个差的选择 .
markss
2015-07-28 14:34:11 +08:00
@codeyung 不小众吧,2年前接触到git后,果断放弃了svn。
@Navee 只要没有物理丢失,总是能找回来的,在找回来的同时,也可以学习到git的妙用,用了2年git,至今觉得只掌握了git的冰山一角,哪怕是这种冰山一角,也给与了我莫大的便利。
git粉,轻喷。
feilaoda
2015-07-28 14:34:36 +08:00
@zythum 用svn维护几十个分支并且经常要合并的日子,你想过没有?
fds
2015-07-28 14:36:15 +08:00
提交丢失的问题善用 git reflog 就可以解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX