为了实现代码检视( Pull Request )这个功能,公司从 SVN 切换到了 Git ,但是不少人遇到了下面的问题:
感觉从 SVN 切换到 Git ,还是要慎重,至少要培训熟练。
1
haochen2 2021-12-03 13:48:51 +08:00 1
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 14
2021 年了,git 应该是基本技能了,不会的开除好了 🙂
|
4
JeepLi 2021-12-03 13:54:22 +08:00
公司工具这么落伍,赶紧离职吧
|
5
lixile 2021-12-03 13:55:08 +08:00 2
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 3
还有就是 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 1
没有系统的培训,出问题不是很正常吗
|
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 1
这种就是传统思维下的历史成本
不愿意抛弃已有的认知去学习新的东西 ------ 当然,你用已有的知识去学习新东西是可行,但前提你得懂什么叫『抽象化』什么叫『融会贯通』(当然这个词选得不好) 大概例子就是,比如你已经 [精通] 一门乐器,那你再学习另外一种 [同类型] 的乐器时,那你以往的知识就是有帮助的 或者如果你掌握都是 [通用] 的 [方法论] ,那你学习什么都用得上。比如如何快速阅读一本书 否则你只会被你以往的经验束缚,并且可能走错方向 ----- 当然额外的说明 像这种很 [通用] [现代] 的技术,或者 [新] 的技术方案,入门门槛难道会变得更难? 如果更难,那不就退步了? 或者说,如果你让一个没接触的人去学习,你会发现他学习非常的快 |
18
sjzjams 2021-12-03 14:43:28 +08:00 1
@quanjw 那你也太看不起 svn 了哈哈。。。
\r\n 这个管理工具怎么会有冲突,“svn 的思维去使用 git” 就很离谱啊,最基础的使用方式网上一看就知道。。怎么用 svn 还给用的固话思维了!!哈哈 |
19
bitllion 2021-12-03 14:58:50 +08:00 5
https://learngitbranching.js.org/?locale=zh_CN 这个练习 git 不错用动画的形式展示
|
20
CodeCodeStudy 2021-12-03 14:59:51 +08:00 1
图形化工具很重要,可以尝试使用 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 1
@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-12-04 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
l4ever 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 有学习难度吗,当初看一天啥都会了
|