101
codeyung 2015-07-28 14:05:26 +08:00
一句话 svn简单易用 适用范围广泛
git 伪GDS 小众 自嗨 OK |
102
barbery 2015-07-28 14:06:04 +08:00
git才是最优解,当然你可以用SVN。。。
|
104
zeeler 2015-07-28 14:07:38 +08:00
用git和svn都无所谓,git好处就是做分支开发方便,如果你们团队分支需求不强烈,用svn也不错,毕竟权限管理很细致
|
105
lilydjwg 2015-07-28 14:13:51 +08:00
咦 svn 现在支持合并了?
你这明显是没有看或者没有看明白 git 提示信息的问题。默认配置下,git 会告诉用户处于什么状态、可以进行什么操作之类的信息。如果遇到看不懂的消息就应该请教懂的人,或者看文档。如果理解了所有提示信息还出现这种问题就说明你们教的人有问题。 |
106
ferock 2015-07-28 14:14:34 +08:00
存在即为合理怎么成了万金油了?
|
107
lilydjwg 2015-07-28 14:15:05 +08:00 1
@codeyung 可是我依旧不会用 svn,遇到 ! 就无解了。文档现在有中文版的了么?我是指人翻译的,不是那种读起来比英文还吃力的类机翻文字。
|
109
Navee OP @Andiry 这是我今天我在linux环境里面复现我的操作时看到的 , 在eclipse里面这么操作并不会有任何的提示 . 作为版本控制 , 我关心的是所有的代码变化 , 平时用linux不多 , 所以习惯了在eclipse的history视图中查看最近的修改 ; 通过我描述的操作(虽然我也知道是不正确的操作) , eclipse提示成功之后在history视图中找不到任何的相关信息 , 这就是我的困惑.
|
110
Navee OP |
111
codeyung 2015-07-28 14:22:22 +08:00
@lilydjwg svn的成本颇低 包括学习 这个个人喜好吧 不过还是团队导向重要 你可以哇git没问题 但是工作的地方用svn的话也要用啊 svn有手册Java一枚 自己的代码用github 公司的项目用svn 插件支持的不错 怎么会出现Lz说的问题 好奇怪
|
112
Andiry 2015-07-28 14:25:13 +08:00
|
113
codeyung 2015-07-28 14:25:21 +08:00
@Navee 目前除了intelliJ 就在用eclipse 的mars svn插件很齐全 包括对比工具 和历史资源图 LZ 还有每个版本version ID 和具体的东东 感觉够我用了 intelliJ的git就不说了 很好很强大
|
115
nuc093 2015-07-28 14:29:58 +08:00
|
116
learnshare 2015-07-28 14:31:16 +08:00
上线之前先测试;写代码之前先 demo;用 Git 前先开个测试项目学习用法。
多练习一下才能正式用起来,直接用导致代码丢失也是很大的问题。 |
117
Navee OP 非常同意 @realpg 的观点
我觉得在工作中 , 你可以把自己当做git砖家 , 但是以git砖家的熟练程度来要求同事是不对的 , 除非每次在代码提交这种基础的事情上遇到了问题 , 你都乐意帮他解决(或是他乐意找你来解决) ; 所以为何不能退一步呢 ? svn 也不是一个差的选择 . |
118
markss 2015-07-28 14:34:11 +08:00
|
120
fds 2015-07-28 14:36:15 +08:00
提交丢失的问题善用 git reflog 就可以解决
|
121
imcoddy 2015-07-28 14:36:59 +08:00
个人是完全的 Git 党。虽然现在做的项目是在用 SVN 管理的,不过我自己开发的时候都完全用 git-svn 来管理。好处是本地想怎么开分支就怎么开分支,提交时也能很好地与团队兼容。
题主丢 commit 的情况,当然很大原因是其它人没有学好用 Git 这个工具。不过话说回来,远程 Repo 设置 Master 和 Develop 不允许强推更新还是很有必要的。 流程方面,统一用 Git-flow 的话,其实难度也不是太高的样子。当然,也的确需要组员能达成共识。 |
122
realpg 2015-07-28 14:39:27 +08:00
@Andiry
你说到linus 我有种感觉 不是黑git git的设计者linus是一个很牛逼的程序员 他不太理解很多普通程序员学习他觉得很简单很理所当然的东西都很困难 尤其是对一些没有那么多开发经验 没有应用分支合并什么这些东西的场景经历的,理解很难的 就像我们作为程序员,总觉得很多傻逼用户最基础的点点鼠标的破系统都不会操作一个道理 我自认为技术领域学习能力一流,git这么个小工具我从0到真正敢说精通我用了小半年的时间 这都很说明问题了 |
123
palxex 2015-07-28 14:41:57 +08:00
这不叫git svn之争。这叫不懂git的和可能懂svn的之争。。。
git学习成本本身存在而且确实比svn要高,否认这点没意义。 行政决策所有地方都得统一换某种scm也没什么意义。 |
124
codeyung 2015-07-28 14:43:48 +08:00
@markss 其实版本控制工具 自身的机制保证了数据在硬盘不损坏下可以回档与更新 这个是个产品就ok鸟
可以统计一下 git 与 svn 你就会知道是不是小众鸟 |
125
codeyung 2015-07-28 14:45:06 +08:00
这个问题不要讨论下去了 公司用什么就用什么 你想用什么写自己的东西的时候用就好了 争论这些然并卵
|
126
Andiry 2015-07-28 14:47:32 +08:00
|
127
vmskipper 2015-07-28 14:51:36 +08:00
存在即合理 这本身就是一个伪命题 有多少不合理的东西存在。根据相关法律法规以下内容不予显示
|
128
Navee OP |
129
lilydjwg 2015-07-28 15:06:52 +08:00
@codeyung 我坚决不同意 svn 学习成本低!没个堪读的中文教程,状态出现 ! 之后就不知道怎么办了。git 至少还有 git book,结构清晰、排版精良。而且内部原理很好懂,就算是出现非常罕见的意外状况,也可以手动给弄好。svn?谁给我一个质量和深度与 git book 不相上下的教程?
PS: hg 似乎也没有好的中文教程。 |
130
lilydjwg 2015-07-28 15:08:24 +08:00
突然想起来,你们那些用 git 的基本功能导致出问题的人,是不是用的图形界面的程序啊?而且是中文版?
|
131
hegfirose 2015-07-28 15:15:51 +08:00
很多时候问题出在人身上,而不是技术本身。
|
132
leon4770 2015-07-28 15:24:37 +08:00
代码丢失要么是合并时导致要么时推送时方法有问题导致,我开发用了小半年的git还没有出现这种丢失代码的情况;
svn和git的选择主要看公司喽,个人觉得git用时间久了还是比较方便的,特别是branch方面 |
133
superleexpert 2015-07-28 15:31:00 +08:00
git速度更快,从没遇到过丢失的状况。
|
134
happypy1 2015-07-28 16:00:56 +08:00
个人感觉,本地多重功能并行开发的时候,git比svn方便。
git只要不断的开分支就可以。 svn的话,你得保存这个改动为patch,然后清空,做别的活。最后切换回来,又是重新patch。 |
135
zythum 2015-07-28 16:05:05 +08:00
|
136
jimrok 2015-07-28 16:07:01 +08:00
这种一哄而上的推广方式是不行的,建议先从精锐的小团队开始,慢慢铺开,让用户帮助用户。
|
137
socrates 2015-07-28 16:10:11 +08:00
svn的逻辑确实更简单,git需要深入的培训才行
git因为分支差异,经常进入一些很特殊的场景,这个对git的掌握如果不够,很容易陷入不知所措的场景 |
138
adaibee 2015-07-28 16:57:12 +08:00
如果公司很多人觉得不好用就换呗,svn会越用越慢,这倒是真的。
|
140
xixi10111011 2015-07-28 17:09:52 +08:00
从team的角度讲,如果大家都精通(真的是精通)git,可以考虑上git。 否则,还是SVN靠谱,学习成本低,简单、易上手,直观。
|
141
unique 2015-07-28 17:12:47 +08:00
每次谈到这种问题就开始撕逼了。
|
142
xiaohanyu 2015-07-28 17:21:10 +08:00
什么年代了,还用 svn
|
143
sunnysign 2015-07-28 17:37:56 +08:00
git快捷、安心,就是难学。svn没啥好说的,分支合并啥的就是噩梦。
|
145
anubiskong 2015-07-28 18:27:30 +08:00
svn转git初期出问题是必然, 有其是你们没有精通git的人也没有正式培训的情况下.
如你所说问题是你们不熟悉git以及它的工作流, 那么你们解决问题的办法就只有好好去了解它, 先学会, 再期待它能解决问题, 而不是反过来. 没考驾照就上道死在路上是活该. svn就是坨屎, 不要想"存在即合理", 在A工具是B工具的超集的情况下, B的存在没有意义, 除非A不存在. |
146
holmesabc 2015-07-28 18:31:35 +08:00
如果有新功能要同步开发, 又要稳定版发布. 或者 在家 在路上有工作需求,但网络又不行.
svn就各种疼了 总结,svn 很难辅助开发. |
147
randyzhao 2015-07-28 18:35:33 +08:00
Git 不会用或者不适合项目需求, 那么, 换 SVN 没问题.
没必要扯到 Git 这个工具本身. 然后我看到这句 "但是公司的领导看到这样的反馈 , 还是建议采纳开发的建议 , 改为SVN." 这也太不信任研发部的 leader 了吧. |
148
fish267 2015-07-28 18:49:12 +08:00
Git 怎么鼓捣rebase的?
|
149
surewen 2015-07-28 18:50:58 +08:00
这年头居然还有人觉得svn比git好用?
commit 和push分开,是多人协作的必然结果。 |
150
focux 2015-07-28 19:08:51 +08:00
话说一般不都是从svn上往git转么。。。
|
151
ZHenJ 2015-07-28 19:18:24 +08:00
好吧,我们是代码用hg,文档用svn。。。
|
152
OpooPages 2015-07-28 19:42:23 +08:00 via Android
我不是来讨论哪个更好的,只是有个问题一直没明白,git怎么搞精细权限控制,比如一个库,a用户部分只读,b用户全库只读,c用户部分可push,d用户全库可push...
在不需要细分权限的库用git很爽,比如开源项目。 |
153
kkwezard 2015-07-28 19:46:07 +08:00 2
又来了。这种用什么版本控制软件的争论每次都能战个十几页。用什么版本控制软件和项目赚不赚钱,你年终奖是不是多发几个月没半毛钱关系。争赢了又能怎样,程序员这臭毛病得治。
|
155
ghostcat 2015-07-28 20:21:50 +08:00
就好比记事本我就喜欢notepad++这种的,VIM实在是用不习惯,各种命令
|
156
Dongdong36 2015-07-28 20:29:13 +08:00
153L +1
|
158
ddou 2015-07-28 21:44:53 +08:00
工具都懒得学习、用错,还能说啥
|
159
sing1ee 2015-07-28 21:50:42 +08:00
git本地仓库,自己搞自己的,然后合并过去。这个挺方便的。
|
160
kingme 2015-07-28 21:55:35 +08:00
我就是想知道,自己用GIT,有没有好的工具和TFS同步,因为其他人都用TFS
|
161
happynohi 2015-07-28 22:16:11 +08:00
@OpooPages Linus 表示(精细)权限控制只是商人维护利益的借口,开源世界不欢迎(精细)权限控制。
如果一定要在 Git 上实现精细权限控制的话,用 Hook 可以解决。 |
163
Joming 2015-07-28 22:19:45 +08:00
重在执行,人是活的。有时候一个东西必须所有人认真对待了。
|
164
Hysteria 2015-07-28 22:20:19 +08:00
我只是觉得我都比较熟悉使用git了,然而到了新公司又喊我用SVN,比较不开心。
|
165
falcon05 2015-07-28 22:25:31 +08:00 via iPhone
用git的学习成本的确要比svn高,说git简单的我很怀疑你们是否真的在团队中用过,除了命令和概念,光是协作流程就有好多种,我们团队用git,成员能力一般,之前都没用过版本控制工具,遇到问题总找我,这时才想起svn的好,简单上手快
|
166
lilydjwg 2015-07-28 22:27:09 +08:00
@OpooPages 这种需求只能自己写 hook 了。不过,git 和 svn 不一样,所以出现有「部分权限」的时候,是不是应该分库了,然后用子模块组装到一起呢?库和分支级别的权限控制 gitolite 已经有了,gitlab 之类的应该也支持的吧。
|
167
loveuqian 2015-07-28 22:29:17 +08:00
就是想用界面吧。。
|
168
shooter 2015-07-28 22:50:00 +08:00
在 rails界 git是标配啊,上手什么时候这么困难了, 学习了 git 才能有 跟github 的大神们互动的基础了
gui 有 sourceTree 或者 https://mac.github.com/ 推荐个视频 http://haoduoshipin.com/tag/git |
169
networm 2015-07-28 23:44:41 +08:00 1
@kn007 Git - Book http://git-scm.com/book/zh/v2
|
170
konakona 2015-07-29 01:23:20 +08:00
总结一个:逃避责任。
为什么? 几个月的时间里,我跟固定的几个同事用Git开发了数个项目,我是Commit狂人,完成一个功能和修复一个bug我都要Commit,如果重要的我会Push给其他同事,并且提醒他立刻更新。 有的时候我们会遇到需要埋头苦些数个小时,修改十几个文件的改动需求,甚至有同一个文件多次改动的,我们是Osx 用的是source tree,For Free。 它做得很好,在Automerge的时候基本能让我们没有损失。你的同事经常代码没有是因为不会用工具,不要怪Git。 回到我们团队的身上,我们每天Commit至少20+Push至少10+。 我们能轻松解决你所说的问题而且是迅速的响应和解决,我们擅长用Logs快速处理代码块,因为Diff很浪费时间,我们真的很讲究效率。 我不明白楼主你讲了那么多,不外乎就是他人的“逃避责任”这个结果罢了-。- 别再浪费你的时间,工作态度和学习动力不足就换人吧。 |
171
konakona 2015-07-29 01:26:34 +08:00
PS:
我绝对不招一个只会SVN,并且坚持用SVN的PHPer。 1. PHP快速开发有优势也有劣势,劣势就是在很多时候没有PM,没有质量监督,只是疯狂的增加需求然后上线上线再上线; ok,你怎么保证你不乱?branch。工具是拿来用的啊! 2. SVN的速度慢,Git的功能全面。 3. 不善于学习新鲜事物,掌握主流版本控制器的人,淘汰,不二话。因为我要的是能来帮忙做事一起发展的人,我不要一个固执己见却顽固不宁的人。对我和整个团队毫无益处。 曾经我在Q上遇到个程序员想应聘我发布的PHPer岗位,刚开始聊,我就问:你会GIt嘛?他说不会,然后我说“不好意思”。他竟然反过来问我,你不是招PHPer吗?然后扯了半天反而把我教训了一顿,真是逗。 Git是我们团队每个人都在用,而且 [乐此不彼] 的一件事——如果你不能接受或者觉得不好,那你更不应该来了啊-。- 你要我怎么跟你继续Talk下去呢。 程序员有的时候也要想想自己。 真心受不了,我也是程序员啊。 |
172
railgun 2015-07-29 01:26:39 +08:00
生产力是第一目的,SVN上手确实比GIT简单
|
173
railgun 2015-07-29 01:29:12 +08:00
反正git和svn也不冲突,换了svn以后,喜欢用git的还是可以继续用git来管理嘛,只是没有远程服务器而已,做好备份就行了
|
174
konakona 2015-07-29 01:32:21 +08:00
看到楼主的append,这里我也想再追加一些关于“我第一次遇到Git”时的情景。——我也觉得Git不要用!
我用SVN多熟啊,为什么我要换一个呢?当时我参加的团队人员就2人,不多。而且没有养成良好的开发习惯,更没有频繁的需求和更具挑战的复杂业务。那我当然是安于现状继续用我的SVN。 但是处于学习的驱动性和目的,我在6年前听到有新的热门版本控制器叫GIt,我去安装了,当时我不知道可以用https checkout,只知道用ssh clone。 为什么要用ssh啊?我是windows,为了用Git我还要装一个像Bash的东西,我根本就不会多少Linux 的东西啊,当时。 但是随着我的职业规划和工作的变动,以及接触的项目。更多的是我参加的IT圈子,他们都在用Git。我看他们说Git的好,我曾经也跟他们争论过。慢慢的我不服,我就深入的用Git。我发现它真的太棒了…… 唯一能带动你身边的人也用Git的最直观办法:你是他上司,你要求并且命令他必须用Git,不用就滚蛋。 将来他一定会谢谢你的-..- 不要那么娘娘腔,只care现在,每一个你的下属的职业规划你都要想的,光是在Git和SVN哪个好的层面上花时间不如有挑战点。 现在我身边的人不仅崇拜我,还特别爱用Git。 那你告诉我,我们之间的差距在哪里?为什么你在烦恼这个问题,而我已经遥遥领先? |
175
flycain 2015-07-29 02:01:12 +08:00
公司的话用svn的多一点吧。
|
176
magicyu1986 2015-07-29 02:05:12 +08:00
我就是感觉哈,一个版本管理工具而已,如果学习成本超过15分钟,就算了吧.一个复杂的东西在工业环境里面用太致命了.
用GIT一是赶时髦,二是为保持社交. PS:竟然真有<精通GIT>这种神书存在啊. |
177
MrGba2z 2015-07-29 05:17:46 +08:00
果然战起来了。。
我们公司用的perforce 但时我们组有个独立的git 然后有个教程可以绑定git和perforce 平时自己用git操作,就会自动更新perforce那边的代码 ~ |
178
msg7086 2015-07-29 07:10:19 +08:00
这都能战起来。
我也来插一脚。 我们公司把git当svn用。 |
179
582033 2015-07-29 07:12:27 +08:00 via Android
git reflog
|
180
networm 2015-07-29 09:09:21 +08:00 1
@kingme Translate 09-git-and-other-scms client-tfs v2 by networm · Pull Request #179 · progit/progit2-zh
https://github.com/progit/progit2-zh/pull/179/files 点文件上方的 View 按钮以正常视图查看文件。 |
181
iugo 2015-07-29 09:16:37 +08:00
先接触的 Git, 后来接触 SVN. 先入为主, Git 很方便, 功能也足够灵活, 我们并未把 Git 发挥到极致, 但已经很好地帮助我们协作.
|
182
qinkun1234 2015-07-29 09:17:39 +08:00
|
183
qinkun1234 2015-07-29 09:18:04 +08:00
|
184
exch4nge 2015-07-29 09:31:22 +08:00
我觉得楼主的问题出现在目前很多软件开发团队中,并不是楼主公司的个别现象。
在国内SVN用的公司应该比GIT多很多,虽然GIT出来已经很久了,但也有很多人不知道GIT是啥,我觉得公司决定到底用什么作为SCM都可以,如果决定换成GIT了,对GIT的相关基础培训以及前期的实际使用过程中的监督管理是必不可少的,如果执行力度不够强,就会出现换回去SVN的可能。 GIT与SVN相比,个人觉得还是GIT优势多一些,在公司有特别的代码管理需求所以使用SVN的情况外,我觉得GIT是更好的选择。现在Gitlab也有比较方便的安装包,几年前配置个gitlab或phabricator之类的得费半天劲。但如果我所在的团队用SVN,我也不会有什么问题,也可以理解,毕竟SVN是很多程序员都会用的,我自己肯定会用git-svn来独自享受git工具带来的优势。 不管用SVN还是GIT,我觉得团队每个人至少得学会正确合理使用代码版本管理工具,特别是不要在版本管理里放一些乱七八糟的临时文件、只有你本人用到的文件、编译过程中生成的文件等等,学会使用ignore这些临时文件。SVN的话可以用SVN Property:ignore(再不行每人的TotoiseSVN客户端设置Ignore),GIT用.gitignore文件(一些通用的可以从 https://www.gitignore.io 上生成)。分支……哎,分支就不说了,估计也用不到。 吐槽一下,话说,我以前待的一家公司,用SVN管理,然后那个服务器硬盘前后坏了,虽然Raid过,但发现的时候已经是有两块不能用,然后去做各种数据恢复,最后还是有些项目的代码丢了,这种事发生过两三次。 |
185
lzxl 2015-07-29 09:35:08 +08:00
本来是svn,推了两个月的git,还是换回svn。
|
186
kingme 2015-07-29 10:13:06 +08:00
@networm 非常感谢,但是我已经用过GIT-TFS了,真的有非常多的缺陷。。。。文章内容非常详尽,或许我应该再试试。。。
|
187
daiwofei 2015-07-29 10:15:59 +08:00
@est 啊哈哈哈哈哈,笑尿了,话说git的优点蛮多的。svn和git都用,只是初学的时候接触起来比较慢,毕竟小心翼翼的在用,怕踩坑,公司要是选svn可能大家都多多少少接触过,很放心的操作来着,如果要选git,个人觉得做一下git培训会很好!
|
188
c0878 2015-07-29 10:16:50 +08:00
谁都知道git是好东西 但是不能以牺牲开发效率为代价去推动 这种事情 你们没有解决问题要负一定责任
我们公司以前的项目都是SVN git的普及使用推动是程序自发的 我们运维也乐意帮忙 毕竟SVN把代码集中在一起万一出现数据丢失那是无可挽回的损失 |
189
zhfish 2015-07-29 10:35:14 +08:00
用git,敲命令行显然是很小众...
用SourceTree,解决一切git疑难杂症... |
190
icecoffee 2015-07-29 11:27:28 +08:00
”存在即合理“ 是误解, http://www.zhihu.com/question/19851152?rf=19722988 http://daily.zhihu.com/story/1955197
这个误解 没事不要乱用。。。 |
191
realpg 2015-07-29 12:09:35 +08:00
@kn007
没有 我精通git的过程就是作为新手频繁使用 就会不断的遇到git的坑 然后用度娘谷哥去搜了解一下问题出在哪 搜不到的问题 就自己回溯操作历史 或者去尝试理解git的实现原理方式 去解决各种问题 当自己把git的几乎所有坑都跳了一次后 就精通了 |
192
wuchizhitu1988 2015-07-29 12:21:10 +08:00
大概类似XP和Win7
|
196
xmxsuperstar 2015-07-29 14:09:23 +08:00
我们团队的现状是要发布到线上的代码通过svn管理,其他配套的工具、周边的测试之类的代码放在git上面。
楼主说的这种丢commit的情况我们也遇到过,我认为这是使用不当造成的,这种情况应该另开一个分支修改,然后合并。 git在大团队中使用尤其是开发人员水平差异较大的情况下的确很麻烦,一般的svn会有专门的scm负责分支的合并和rebase,而用git很多时候把这些工作交给了开发,如果遇上对git不是很熟的很容易出问题。 |
197
realpg 2015-07-29 16:33:18 +08:00
@swolf119
说到这个,前前前公司标配MBP 然后有个哥们(市场部)自己装了双系统用windows 然后公司IT表示这样不好 要求他干掉windows 然后这哥们不干,说是很多东西mac用不了 IT嫌麻烦就闹到了大领导那里表示这机器非要装windows,出问题IT不负责 因为用windows发热比较变态,按照经验装双系统的总比纯OSX的问题多 然后到大领导那里,大领导问那个市场的你干嘛非得装windows,全公司就你一个特别啊 市场那哥们说,太多东西不兼容了,比如网银,比如股票软件,比如期货软件 大领导:股票?期货!马勒戈壁去财务结账你可以滚蛋了…… |
198
networm 2015-07-29 17:14:23 +08:00
@kingme 你可以先看下文章内容,仔细阅读后,确定不是自己使用的问题;其次,尝试使用最新的 git-tfs 版本,看看问题解决没有。
另外,如果觉得翻译的文章有用,欢迎提出审校意见!https://github.com/progit/progit2-zh/issues/160 |
199
Wangxf 2015-07-29 17:28:25 +08:00
我第一家公司用svn,这家公司用git,其实我倒是觉得svn比较简单,git是给极客用的,我是觉得怎么方便怎么来,当然也要看公司实际情况,就像我们这个公司用git,那好啊,我就去自学git啊,有啥好争论的
|
200
knightzorro 2015-07-29 17:44:36 +08:00
20多岁的小年轻居然抵触git? 不在github上开几个repo怎么找工作啊。
|