真有人觉得 Git 会提高生产力?

2021-05-25 10:37:11 +08:00
 longway
以前一直觉得 Git 挺好。不过最近做了一个 feature,改了一大堆文件。这些文件别人也在改,有非常多 commit 。在 Git 合并,解决冲突,rebase 上花的时间远超以前用 svn/perforce/tfs 。


看这么多人吹 git,不知道逻辑是什么,难道一个更加复杂的东西使用时会花费更少的精力?

svn 这种中心化模式,一个人 merger 好了,其他人 sync 一下即可。现在用了 git 每个人都要管理自己的 branch,自己去做 merge 同步,真觉得这样省力?

难道你们都是一个人在开发 ?一个冲突没有?
20608 次点击
所在节点    git
170 条回复
kikyous
2021-05-25 12:37:08 +08:00
真有人觉得版本控制软件会提高生产力?
反正我是从来不用的
shenqi
2021-05-25 12:40:40 +08:00
难道你们都是一个人在开发 ?
这句话我觉得刚好反问你。
raffaellolin
2021-05-25 12:42:02 +08:00
git 大家都用不习惯 网上问问题❌ 改用 svn ✔
IvanLi127
2021-05-25 12:43:13 +08:00
你举的例子只能证明你们团队不行啊。。。。全部提交到中央仓库,一个人解决冲突后,大家再更新不就好了。
hello2060
2021-05-25 12:47:56 +08:00
支持楼主,一个团队多浪费时间啊,所有的活一个人干不就得了。
felixcode
2021-05-25 12:53:02 +08:00
接受不了新事物的心态
yuankui
2021-05-25 12:56:26 +08:00
没事你 rebase 干啥?建议你跟老大建议继续用 svn 吧,适合自己的才是最好的
missdeer
2021-05-25 13:13:17 +08:00
get 到你的点了,但你的点前提是错的,在错的前提下讨论再多也没意义
est
2021-05-25 13:14:19 +08:00
我觉得大家都让 LZ 去学或者看书,这种是无助于讨论的。

> svn 这种中心化模式,一个人 merger 好了,其他人 sync 一下即可。现在用了 git 每个人都要管理自己的 branch,自己去做 merge 同步,真觉得这样省力?

其实 git 就是这样用的。每个人管理自己的 branch 可能是 LZ 走偏了。
longway
2021-05-25 13:15:30 +08:00
@Biwood

为了减少 master 的 commit,每个人都会在自己的 branch 上先 rebase 一下。
longway
2021-05-25 13:16:04 +08:00
@Sainnhepark

专门找人 merge,那个人会比你更懂你的代码?
h82258652
2021-05-25 13:16:30 +08:00
别的不说,至少我觉得 svn 有两个地方是远远不如 git 的。
1 、分支,svn 的分支就是 copy 一份,每开一个分支,repo 体积多一倍。我们用 git 每发一个生产环境版本都要打一个 tag 的,svn 这样的分支设计难以支持;
2 、缺少 gitignore 对应的实现,这个在 svn 里要不就只能全局设置,不能对应到单独的 repo 上面,然而事实就是每个 repo 要 ignore 的确实不一样。最后结果就是 svn 的 repo 就提交了一堆没用的文件,包括代码编译生成的二进制文件,进一步导致了第一点问题的加剧。
longway
2021-05-25 13:20:06 +08:00
@mxT52CRuqR6o5

perfoce/svn 大家会共用一个开发 branch,提交每一个 commit 前做冲突解决,开发前自己先拉下代码即可,从来没觉得代码同步、提交、合并会是个问题。而不像 GIT,等各人开发 一段时间,冲突已经积累一大堆。
jones2000
2021-05-25 13:20:46 +08:00
流程有问题吧. 每个人负责一个模块, 每个模块都是独立的文件, 一般不会多个人改同一个文件的.
fiypig
2021-05-25 13:23:14 +08:00
只要分配各个模块,就不太会出现这个问题,除非是改到一些公共模块...
longway
2021-05-25 13:24:02 +08:00
@jones2000

所以 git 更适合个人独立开发各自的功能,只不是团队合作开发一个功能。
Biwood
2021-05-25 13:34:56 +08:00
@longway

取决于“减少 master 的 commit”这条原则有多重要了,感觉还是要看应用场景吧,有些场景下只能做适当的妥协
fffang
2021-05-25 13:35:47 +08:00
@longway 不要直接 rebase branch,在自己的分支上用 rebase 将 commit 压缩成一个再 merge,这样 commit 只会是一个,也不需要一个一个进行 rebase 操作
masterclock
2021-05-25 13:37:38 +08:00
@longway 使用 git,必须得 ”等各人开发 一段时间,冲突已经积累一大堆“ 之后再提交?
jones2000
2021-05-25 13:44:38 +08:00
@longway 团队合作也不需要多个人开发 1 个模块吧, 如果是一般都是构架有问题, 继续拆模块, 把这个大模块拆成小模块,1 个人能做的那种,这样开发才能平行, 否则 1 个模块 N 个人做, 上一个人功能要等下一个人开发好, 才能继续开发, 还如果 1 个人做呢。 团队开发就为了提高效率, 比如 1 个项目你 1 个人需要做 1 个星期, 那老板直接说我给你 7 个人, 你 1 天时间给我开发完。

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

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

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

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

© 2021 V2EX