公司从 SVN 切换到 Git 的那些坑

2021-12-03 13:29:15 +08:00
 villivateur

为了实现代码检视( Pull Request )这个功能,公司从 SVN 切换到了 Git ,但是不少人遇到了下面的问题:

  1. 没有理解 Git 的工作区、暂存区、仓库区、远端之间的关系,用 SVN 的思维去使用 Git ,比如会通过删除工作区文件、再拉取代码这种方式来回退代码。
  2. 在修改工作区文件后,没有 commit 或者 stash ,就 pull 代码,导致提示冲突,因为不熟练所以不知道如何解决。
  3. 之前 SVN 仓库中有很多需要经常修改的大二进制文件,初期迁移的时候没有用 LFS 管理,导致 Git 仓库庞大,clone 要花很长时间。
  4. 使用 LFS 后,因为各个用户终端配置不一样,可能有的人没有装 LFS ,提交后,其他人再 pull ,会出现很多奇怪的问题。

感觉从 SVN 切换到 Git ,还是要慎重,至少要培训熟练。

8762 次点击
所在节点    程序员
68 条回复
tuutoo
2021-12-03 18:11:18 +08:00
一定要先培训好了再转 git
ncepuzs
2021-12-03 18:23:09 +08:00
我觉得不熟悉 Git 的话更不应该用命令行,反而应该用可视化工具。
ncepuzs
2021-12-03 18:25:30 +08:00
@corningsun 上次看的时候这两位开发者好像还是情侣,兼职开发。现在似乎是结婚了,全职维护 fork ?
eycode
2021-12-03 18:26:22 +08:00
sourcetree 了解下
levelworm
2021-12-03 19:04:09 +08:00
只会用 jetbrain 编辑器里头的图形化 git ,还是很方便的。不过没搞清楚为啥 update 不能更新 branch 。。。每次都是直接 pull/fetch
secondwtq
2021-12-03 19:06:59 +08:00
代码检视是什么奇葩翻译,还是说你想说的其实是 Code Review ?
没用过 SVN ,SVN 不能做 review 么?
biguokang
2021-12-03 19:10:10 +08:00
这是人的坑,不是工具的坑

做好人员培训很重要
tzengshinfu
2021-12-03 20:20:57 +08:00
@quanjw 雖然我司也是用 SVN 但也可以開分支
dingwen07
2021-12-03 20:39:34 +08:00
用 GUI 能解决掉你这里大多数问题
villivateur
2021-12-03 20:46:59 +08:00
@secondwtq 求教,SVN 怎么做 review
quanjw
2021-12-03 21:34:57 +08:00
@tzengshinfu @cnzjl @liubaicai 学习了 我对集中式管理的理解错误
noparking188
2021-12-03 22:25:25 +08:00
没有准备就上新技术?
我也经历过团队从 SNV 迁移到 Git ,前期做了不少准备工作,留了几个月时间通知到大家提前适应,后续迁移仓库过程中也相应制定了不少规范和约束,迁移完全部项目花了有大半年时间
团队不少成员也没有系统去学习 Git 知识,找其它有使用经验的团队过来简单讲解了下,像是摸着 SVN 过河、依葫芦画瓢,借助 IDE 自带的 Git 功能集成
dddd1919
2021-12-03 22:30:17 +08:00
很久以前团队几个人从 svn 转到 git 为啥丝滑的一批?因为看文档了啊
neetrorschach
2021-12-03 23:13:18 +08:00
自从用了 idea 的 git 再用 vs 的简直不能忍,操作太僵硬了,里面的 cherry pick 至今没看明白怎么用。
Volekingsg
2021-12-03 23:48:10 +08:00
@securityCoding magit 不服🐶
huangsen365
2021-12-04 00:13:21 +08:00
有个东西叫 branch ,分支,多看看 git 的常用特性功能吧
bzj
2021-12-04 00:35:34 +08:00
如果是 10 年前我看到这个帖子并不会觉得诧异,但是都 2021 年了,还有人没用过 git ,并且因为自己不会使用吐槽 git 有坑,我真是服了。
secondwtq
2021-12-04 01:19:00 +08:00
@villivateur Code Review 这个过程本身和 VCS 工具,或者任何的外部工具没有必然关系啊 ... 就是你把一个 patch (或一组 patch ) share 给一组人,然后一起讨论改进的过程(也可以有机器跑一些自动化的流程),工具只是帮助 streamline 这个过程

要说工具的话,https://en.wikipedia.org/wiki/List_of_tools_for_code_review 这里面不是有不少工具声称支持 SVN 。我知道的里面 Phabricator 前段时间停止开发了,然而一些知名开源项目例如 Blender 和 LLVM 之类的目前还是在用,当然这俩现在都用 Git ,但是比如 LLVM 也是最近才完全用 Git ,之前好像有段时间是 Git 和 SVN 并用,再之前应该是 SVN 。这个上古 patch https://reviews.llvm.org/rL237708 现在打开 URL 会被 301 到一个 Git 的 Commit ID ,但是 commit message 还保留着 SVN 的 revision number 。Review Board 现在还在开发,应该也比较靠谱。然后我也是刚发现这页面里面甚至还有 GvR 的一个副业 Rietveld ,我没用过这东西,但是我用过它的 fork Gerrit (只支持 Git ),AOSP 和其他的一票 Google 项目好像也在用。

人家 Linux Kernel 和 GCC 用 mailing list 都好好的 ...
0o0o0o0
2021-12-04 01:32:28 +08:00
git 的确很强大,但是也得学一下,实际用一段时间才能摸清楚怎么用,你说的问题基本上都是小白会遇到的,好像也正常。。。我觉得不会的就讲一下分享一下经验,毕竟是团队合作。
firemeteor
2021-12-04 02:28:40 +08:00
在公司环境里面真的有必要用 git 么? git 的优势主要还是在于开源社区的分布式开发模式吧?

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

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

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

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

© 2021 V2EX