真有人觉得 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 同步,真觉得这样省力?

难道你们都是一个人在开发 ?一个冲突没有?
21642 次点击
所在节点    git
170 条回复
chenqh
2021-05-25 19:44:00 +08:00
@junksheng 很多人用 git,不是因为 github 用的 git 吗?
cosmtrek
2021-05-25 19:47:53 +08:00
如果大家都在频繁改一个文件,那可能你们分工有问题,或者代码结构不合理
junksheng
2021-05-25 19:52:39 +08:00
@chenqh 不觉得啊,都是跟着公司走
iyaozhen
2021-05-25 20:00:40 +08:00
@nvioue 你不能断章取义呀

你看我后半段。后面入行的确实没用过 svn 。你是如何得出“svn 这种垃圾还有人用???”
git 使用成本是高呀,当年百度 svn 切 git 费了老大的劲,为什么要切了,因为 svn 装不下了,还有很多新的工具链
chenqh
2021-05-25 20:07:38 +08:00
@junksheng 反正我是因为 github,
Rheinmetal
2021-05-25 20:16:39 +08:00
组织架构和开发习惯不合适 git flow
不要强上否则事半功倍
palxex
2021-05-25 20:55:43 +08:00
怎么说呢。对初学者,git 上手确实比 svn 要复杂得多,以前都是专门写文档教新人合并啥的,也不知道能听懂多少。对 xml 这种东西更是几近智障(我知道这是 diff/merge 的锅,但没法说不是 git 的问题)。
但是,说这种成本毫无必要就更扯淡了。svn 时代的合并简单是以没法轻易分支,本地没有完整存储库,甚至很多单位专门设置 merger 职位负责合并等等为对价的。完成这个迁移,尽管痛苦,但你进入的是一个更自由的世界。
另外没用过 git flow,git 自己的工作流程搞清楚完全可以轻易地完成所有工作,甚至现在我去 clone svn 库都是走 git svn 的。
darknoll
2021-05-25 21:18:53 +08:00
一个文件好几个人改?
建议请个好点的架构师吧
ming7435
2021-05-25 21:25:42 +08:00
从这个问题足可以看出绝大多数都是满满的优越感, 都是上来就是一顿瞎鸡儿喷.
mauve
2021-05-25 21:33:07 +08:00
用 Git 如何改善工作效率?✖
真有人觉得 Git 会提高生产力?✔️
楼主提问的智慧玩到头了属于是
rekulas
2021-05-25 21:43:31 +08:00
你如果说 git 仍然存在不足,这是 OK 的
你说 git 合并方便不如 svn 方便,这就是你的问题了,说明你根本没理解 git 的精髓
svn 能实现的中心化开发 git 也能实现(通过服务器设置),但 git 的分支流模式是大项目开发的最优选择,你以为 svn 中心化开发减少了合并冲突的时间?大错特错,正以为 svn 的强制中心化合并要求,只会占用和延误开发者更多时间
之前参与过一个数百人的跨国项目,基于 git 流程开发的非常顺畅,如果你们花在冲突的时间太多,应该考虑的是优化你们的开发工作分配而不是考虑 git 是不是比如 svn,我实在想不出 svn 相对 git 有什么特殊优势
Felldeadbird
2021-05-25 21:52:16 +08:00
git 冲突很好解决啊。搜索<<<< 这部分代码。然后拿出 差异对比器,把 <<<< 和别人 >>> 部分 一对比,就知道哪里出错了。
除非两个大功能一起上线,否则大多数都不需要解决很多重复冲突问题。大部分都是拿别人 >>>> 作为主要解决方案。

SVN 有个非常不好的地方(不开分支下)。如果你的功能没上线,然后公司有人推送上去,你所有代码都被污染,等你发现怎么办?
Felldeadbird
2021-05-25 21:54:09 +08:00
@darknoll 哈哈哈哈,说到点子上了。
james122333
2021-05-25 22:02:57 +08:00
git 确实比较复杂 所以有人一直在问图形化工具 但如果熟悉命令行其实也还可以 这种工具到一定程度其实用起来没差很大 会基本的已经足够使用 git 就两个卖点一个分支一个本地 commit 一个分支不同实现与需求实作中然后要改其他分支的东西更崩溃 怕一不小心操作错误就重来了 这时候手动操作也未必不可
分支多合起来能不能正常是问题没错
youxiachai
2021-05-25 22:20:15 +08:00
连 git 都用不好,这团队素质有点差。。。
tomkliyes
2021-05-25 22:36:26 +08:00
标题就十分引战,你认为 git 不适合你们团队,svn 更适合,可以拿出来分享讨论。git 已经是开源社区的事实标准,我想一定是有它的优势的。你用 svn 也好,用 git 也好,都是你所在团队自己的选择
johnsona
2021-05-26 00:27:29 +08:00
确实要学习成本 之前新入职同事几乎都在 git 上遇到困难 一个功能还没搞定 先花大量时间折腾 git 工作流了
freelancher
2021-05-26 01:01:24 +08:00
说实话,我支持楼主。很有提问的智慧。
bao3
2021-05-26 06:51:35 +08:00
我是从 svn 一路用过来,嗯,git 真的是太细致太庞杂,真的不如 svn,但是对于小朋友,他们出生后没有选择,只有 git 这个选项。就好像即墨我们当地人读了 2500 年 ji mì,但是小朋友们出生后只能选择读 ji mò。
即使 svn 再方便再轻量,也只能使用 git
GeruzoniAnsasu
2021-05-26 07:03:00 +08:00
@longway #76

git 设计初衷即如此,你会发现 git 的适用场景是独立开发者一起合作写代码。如果合作不是写代码,或者团队成员并不需要保持相互独立性,git 绝大部分 feature 根本就没用。

git 是从独立开发者们手中迭代出来的,svn 是从企业开发流程中成长出来的,这能一样吗。



git 的缺陷是很明显的,它并不是普遍适用的版本管理工具,很多人看不见房间里的大象而已
就跟 php 是世界上最好的语言也确实是真的有道理的,只是很多人体会不到它的伟大之处罢了

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

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

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

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

© 2021 V2EX