为了实现代码检视( Pull Request )这个功能,公司从 SVN 切换到了 Git ,但是不少人遇到了下面的问题:
感觉从 SVN 切换到 Git ,还是要慎重,至少要培训熟练。
1 haochen2 2021-12-03 13:48:51 +08:00 ![]() git 应该是一个合格开发人员最基本的技能了吧,对 pull 、push ,merge ,rebase 等等不熟可以在 github 上建个仓库练一练 |
![]() | 2 VeryZero 2021-12-03 13:50:01 +08:00 统一培训很重要 |
3 wdwwtzy 2021-12-03 13:52:40 +08:00/span> ![]() 2021 年了,git 应该是基本技能了,不会的开除好了 |
4 JeepLi 2021-12-03 13:54:22 +08:00 公司工具这么落伍,赶紧离职吧 |
![]() | 5 lixile 2021-12-03 13:55:08 +08:00 ![]() 1.理解问题无法解决 多用多学习 不要停留在 SVN 基础上 2.及时提交 及时 commit 及时 push 及时 pull ,流程上注意区分开发分支,release 分支,个人分支。多看看 git flow 或者说叫 git 工作流 3. git 大文件存储和二级制文件跟踪是不太好,建议重新迁移洗仓,写好通用.gitignore ,话说你们没配置管理的人吗 4.研发环境统一话 建议采用编写通用工具安装脚本,毕竟很多开发 终究只是普通开发罢了 ,不关注工具,不关注流程,不关注代码仓本身也是交付件这回事 |
![]() | 6 kop1989 2021-12-03 13:59:33 +08:00 其实从文件管理角度讲,SVN 和 Git 在逻辑上没有区别。 区别只在于本机的 Git 仓库和 Git server 的同步(推送、拉取)上。这块是 svn 没有的逻辑。 如果想明白了这点,绝大多数智商正常的人都能熟练的从 SVN 的使用习惯迁移到 Git 。 |
![]() | 7 kop1989 2021-12-03 14:01:23 +08:00 ![]() 还有就是 SVN 和 Git 是两种不同需求的产物,没有“先进”和“落伍”。 |
![]() | 8 murmur 2021-12-03 14:05:59 +08:00 不习惯 git 装个图形客户端不行么,冲突了无外乎用你的,用我的,自己合完提交一个新的 |
![]() | 9 rm0gang0rf 2021-12-03 14:07:47 +08:00 不会 git 的飘过~基本的 pull 、push ,merge ,rebase..可以 |
![]() | 10 pengtdyd 2021-12-03 14:08:06 +08:00 ![]() 没有系统的培训,出问题不是很正常吗 |
![]() | 11 xlsepiphone 2021-12-03 14:10:10 +08:00 git 的图形化工具除了在解决冲突或者 diff 的时候挺方便的,其余的我觉得都没有命令行方便。 |
![]() | 12 kop1989 2021-12-03 14:15:15 +08:00 针对 append:不太理解为何第三方工具会导致“出了错都不知道啥原因,也不了解原理”。 1 、第三方工具的操作,只是 git 命令的图形化。 2 、第三方工具也会把他进行的操作输出。 3 、第三方工具会自动根据场景提示接下来可能的操作以及其结果。出错的可能性反而更低。 |
![]() | 13 murmur 2021-12-03 14:15:28 +08:00 @xlsepiphone 那可是乱说,提交的时候旁边显示下改动是基本功能,你命令行怎么做到点一个文件看一下哪里改了 我习惯提交前最终确认一下,有时候我就发现按快捷键了但是快捷键没生效,倒是什么 C 啊 V 啊 F 啊都写到代码里去了。。 |
![]() | 14 murmur 2021-12-03 14:16:50 +08:00 图形化操作:暂存所有 立即推送到 origin/master 提交 完事了,跟 svn 没区别 |
15 gengchun 2021-12-03 14:22:02 +08:00 @JeepLi 一般来说,市场和生产资料比生产工具重要。 软件开发培训和教程,几乎都是在教怎么拿着屠龙刀杀鸡。大部分公司的实际开发流程,其实也用不到太多 git 的特性。 现在换 git 还是有点必要,主要是现在市场上配套的 CI/CD 和其它工作流工具都是基于 git 的,不切到 git ,后面很多时髦的东西就没有理由买了。 |
![]() | 16 quanjw 2021-12-03 14:29:50 +08:00 个人理解:svn 只有一个主干,git 可以有 master 、test 、dev 分支。人少随便用哪个都行,多人还是 git |
![]() | 17 xmsz 2021-12-03 14:42:15 +08:00 ![]() 这种就是传统思维下的历史成本 不愿意抛弃已有的认知去学习新的东西 ------ 当然,你用已有的知识去学习新东西是可行,但前提你得懂什么叫『抽象化』什么叫『融会贯通』(当然这个词选得不好) 大概例子就是,比如你已经 [精通]一门乐器,那你再学习另外一种 [同类型] 的乐器时,那你以往的知识就是有帮助的 或者如果你掌握都是 [通用] 的 [方法论] ,那你学习什么都用得上。比如如何快速阅读一本书 否则你只会被你以往的经验束缚,并且可能走错方向 ----- 当然额外的说明 像这种很 [通用] [现代] 的技术,或者 [新] 的技术方案,入门门槛难道会变得更难? 如果更难,那不就退步了? 或者说,如果你让一个没接触的人去学习,你会发现他学习非常的快 |
18 sjzjams 2021-12-03 14:43:28 +08:00 ![]() @quanjw 那你也太看不起 svn 了哈哈。。。 \r\n 这个管理工具怎么会有冲突,“svn 的思维去使用 git” 就很离谱啊,最基础的使用方式网上一看就知道。。怎么用 svn 还给用的固话思维了!!哈哈 |
19 bitllion 2021-12-03 14:58:50 +08:00 ![]() https://learngitbranching.js.org/?locale=zh_CN 这个练习 git 不错用动画的形式展示 |
20 CodeCodeStudy 2021-12-03 14:59:51 +08:00 ![]() 图形化工具很重要,可以尝试使用 IDEA 进行 git 操作 |
![]() | 24 murmur 2021-12-03 15:48:25 +08:00 @liubaicai 我的场景是这样 比如 someFunction();<---此时光标再这里 我按下 ctrl+shift+f 全文搜索,因为快捷键冲突,这个对话框大概率出不来,就成了 someFunction();F 因为 js 没有开严格模式,这个语句是不会报错的 |
![]() | 25 liubaicai 2021-12-03 15:50:42 +08:00 @murmur 我不是说钩子。你本地跑完再提交,你那些 C 啊 V 啊什么的,不就发现了吗,难不成还能过测试?当然我承认 gui 工具确实好用,这个没得说。 |
27 justest123 2021-12-03 16:25:44 +08:00 啊 优越感真可怕 |
![]() | 29 Kimen 2021-12-03 16:40:35 +08:00 还好我接触版本控制的时候用的就是 git ,几乎没有用过 svn ,少了这些问题 |
30 superrichman 2021-12-03 16:43:28 +08:00 git 的学习成本比 svn 大的多,很多时候 git 提供的那么多功能根本不会去用,大部分人只需要更新和提交,最多冲突了再加一个合并 |
31 klgd 2021-12-03 16:50:25 +08:00 更换后的镇痛是正常,过两天就好了,我们当初就是这样 |
![]() | 32 yohole 2021-12-03 16:58:02 +08:00 题外话,idea 的对于 git 的支持和图形界面的交互体验,个人觉得远超其他独立的客户端 |
![]() | 33 dinghmcn 2021-12-03 17:18:44 +08:00 我们公司 git 还好,repo 一堆人不会用,但我们公司除了老旧代码基本都上 repo 了 |
34 leeg810312 2021-12-03 17:21:16 +08:00 很多时候就用 pull / push / merge ,网页版还会有 pull request 和 review ,rebase 我们平常都很少用。svn 过渡到 git 很平滑,没有感觉很难适应。刚用 git 时,用 IDE 或图形软件来操作可能比较方便,容易适应。 |
![]() | 35 statement 2021-12-03 17:23:31 +08:00 感觉 git 的复杂操作 使用起来挺难的 比如各类回滚 1.这类操作需要很慎重 会有畏惧心理 2.使用场景很少,没有哪家公司天天回滚代码吧 就导致学会了长时间不用就忘 不会你又不太敢用更畏惧了 能少用就少用 越不用越不会 恶性循环了属于 |
![]() | 36 lueluev 2021-12-03 17:25:19 +08:00 没事,过段时间就真香了 |
37 securityCoding 2021-12-03 17:28:43 +08:00 目前最好用的客户端应该是 idea 的 git 界面了 |
38 madao100 2021-12-03 17:31:47 +08:00 全离职吧 |
![]() | 39 corningsun 2021-12-03 17:35:18 +08:00 |
![]() | 40 JavaFirstMaster 2021-12-03 17:36:41 +08:00 我这个部门就还在用 svn, 进来第一天就想跑路 (σ`д′)σ |
![]() | 41 tuutoo 2021-12-03 18:11:18 +08:00 via Android 一定要先培训好了再转 git |
![]() | 42 ncepuzs 2021-12-03 18:23:09 +08:00 我觉得不熟悉 Git 的话更不应该用命令行,反而应该用可视化工具。 |
![]() | 43 ncepuzs 2021-12-03 18:25:30 +08:00 @corningsun 上次看的时候这两位开发者好像还是情侣,兼职开发。现在似乎是结婚了,全职维护 fork ? |
![]() | 44 eycode 2021-12-03 18:26:22 +08:00 sourcetree 了解下 |
![]() | 45 levelworm 2021-12-03 19:04:09 +08:00 via Android 只会用 jetbrain 编辑器里头的图形化 git ,还是很方便的。不过没搞清楚为啥 update 不能更新 branch 。。。每次都是直接 pull/fetch |
![]() | 46 secondwtq 2021-12-03 19:06:59 +08:00 代码检视是什么奇葩翻译,还是说你想说的其实是 Code Review ? 没用过 SVN ,SVN 不能做 review 么? |
![]() | 47 biguokang 2021-12-03 19:10:10 +08:00 这是人的坑,不是工具的坑 做好人员培训很重要 |
![]() | 48 tzengshinfu 2021-12-03 20:20:57 +08:00 via Android @quanjw 然我司也是用 SVN 但也可以分支 |
![]() | 49 dingwen07 2021-12-03 20:39:34 +08:00 via iPhone 用 GUI 能解决掉你这里大多数问题 |
![]() | 50 villivateur OP @secondwtq 求教,SVN 怎么做 review |
![]() | 51 quanjw 2021-12-03 21:34:57 +08:00 |
![]() | 52 noparking188 2021-12-03 22:25:25 +08:00 没有准备就上新技术? 我也经历过团队从 SNV 迁移到 Git ,前期做了不少准备工作,留了几个月时间通知到大家提前适应,后续迁移仓库过程中也相应制定了不少规范和约束,迁移完全部项目花了有大半年时间 团队不少成员也没有系统去学习 Git 知识,找其它有使用经验的团队过来简单讲解了下,像是摸着 SVN 过河、依葫芦画瓢,借助 IDE 自带的 Git 功能集成 |
53 dddd1919 2021-12-03 22:30:17 +08:00 很久以前团队几个人从 svn 转到 git 为啥丝滑的一批?因为看文档了啊 |
54 neetrorschach 2021-12-03 23:13:18 +08:00 自从用了 idea 的 git 再用 vs 的简直不能忍,操作太僵硬了,里面的 cherry pick 至今没看明白怎么用。 |
55 Volekingsg 2021-12-03 23:48:10 +08:00 via iPhone @securityCoding magit 不服 |
56 huangsen365 2021-12-04 00:13:21 +08:00 via iPhone 有个东西叫 branch ,分支,多看看 git 的常用特性功能吧 |
57 bzj 2021-12-04 00:35:34 +08:00 如果是 10 年前我看到这个帖子并不会觉得诧异,但是都 2021 年了,还有人没用过 git ,并且因为自己不会使用吐槽 git 有坑,我真是服了。 |
![]() | 58 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 都好好的 ... |
59 0o0o0o0 2021-12-04 01:32:28 +08:00 git 的确很强大,但是也得学一下,实际用一段时间才能摸清楚怎么用,你说的问题基本上都是小白会遇到的,好像也正常。。。我觉得不会的就讲一下分享一下经验,毕竟是团队合作。 |
60 firemeteor 2021-12-04 02:28:40 +08:00 via Android 在公司环境里面真的有必要用 git 么? git 的优势主要还是在于开源社区的分布式开发模式吧? |
![]() | 61 Nnq 2021-1204 05:00:02 +08:00 没有坑,git 分布式,svn 是集中式 注意使用方法就好,开始有点难,后来应该都可以 |
![]() | 62 lopssh 2021-12-04 05:04:42 +08:00 内网环境怎么做 Pull Request?? |
![]() | 63 Shazoo 2021-12-04 09:20:11 +08:00 叹气,不少人用 git 咋还用出优越感来了…… svn 不少场景是比 git 优秀的,权限部分也做的不错。迁移还真得需要认真考虑下。 迁移工作本身比较棘手,需要做大量培训工作。早期可以费劲并行一段时间 (一些子项目用 git ,主项目用 svn )。scm 还得考虑很多历史遗留的自动脚本迁移…… 所以,迁移成本千万别太低估了。 |
![]() | 64 villivateur OP @lopssh 自己搭建个 gitea |
65 luckyc 2021-12-04 12:32:38 +08:00 怎么大家都歪楼, 吐槽起版本管理工具了? svn 能根据目录设置权限, git 可以? git 有 git 好处, svn 有 svn 优点. 没什么好喷的. |
![]() | 66 wxw752 2021-12-04 12:41:21 +08:00 一个 git 有学习难度吗,当初看一天啥都会了 |