不会git的程序员,会不会被鄙视?
昨天一朋友在微信上问了我一个问题,我觉得很有趣,于是将本次聊天的内容分享给大家。
我朋友说,如果一个程序员不会使用 git,会不会被别人觉得低一个档次?
事先声明啊,这与公司技术栈无关,不要说有些公司只用 git 管理。对于公司而言,使用什么版本控制有一定的考虑或者历史原因。但如果你遇到一个不会 git 的新同事,会不会感觉 ta 以前的公司有点low ?
我当时就回复了他四个大字:同行相轻。
「 会git有那么重要吗 」
不得不说,近年来,使用git的公司越来越多,甚至已经成为了主流。当你去一家使用git的公司时,掌握它就成为了硬性指标。如果你在公司遇到一个不会git的新同事,也不要大惊小怪,可能人家之前呆的单位用svn。
个人感觉讨论这些有点 low,说白了一个工具而已,编程能力才是最重要的吧!
git 重不重要,挺重要,但不是企业主要的考核标准。企业用到,不会就学。企业用不到,我干嘛要学,学不学都无所谓。
说真的,我之前也和这哥们有同样的想法,直到有一天下班前在工作群里看到通知:“某同学 recursive sed 代码出错,无视 conflict 强行 push 导致集群瘫痪,现已关闭所有人该 repo 权限,工作未提交的同学晚上加下班等通知,恢复时间未知”。
因为自己的技术不精且不认真学习的,而给其它协作者带来困扰,这种人才是被鄙视的对象。
所以,我认为,会不会其实没什么大问题,只要虚心承认自己的实际水平就好,比较烦这几种情况:
1. 履历上说自己精通 git,实际上连 merge 和 rebase 的区别都不清楚。
2. 工作中在用 git,但只满足于 pull push commit merge 的基本用法,不求甚解。
3. 无视团队 git 操作规定,肆意使用危险操作指令。
所以,成熟公司都有 CodeReview 的制度,不会用 git 也不可能把主分支搞坏的,让他们自己分支上玩玩就会了。
「 会git了不起是吗 」
Sorry,会git就是了不起。学会 git 确实好处多多,比如绝大多数的开源社区都是使用 git 作为版本控制工具,学会 git 有助于参与到开源社区中,算是提升自我技术能力的渠道之一。
普通程序员学会常用的 clone commit pull push merge checkout branch 就可以了。sourcetree 基本满足日常,stash 非常适合临时存一下,cherry-pick rebase 也能提高工作效率。
其实严格说来,Git 既可以指 Git 命令行,也可以指 Git Repository 的格式,或者 Git 所推崇的基于分支、合并、变基、Git Flow 等的项目管理方法(操作 Git Repository,使用 Git 命令行并不是必须的,完全可以自己编写程序实现)。
有些人说会 Git,是会生成一个 Repo 然后推来拉去。
有些人说会 Git,是会一些命令的用法。
有些人说会 Git,是会把 Branching Merging 等技巧运用到项目管理当中去。
这些「会 Git 」是完全不同的。
所以我如果鄙视一个人,一定不是他单纯技术低。
「 你真的会git吗 」
如果所谓的 [ 会 git ] 等同于 [ 网上随便一查十几分钟就能学会的 clone add commit pull push 命令的 ] 的话:
这我觉得没什么好鄙视的,很简单的东西,就像你不能因为一个人只使用 Terminal 而不使用 iTerm2 你就鄙视他一样,也许你在 iTerm2 上还没别人用 Terminal 用的6。(就像你不能因为一个人只使用 eclipse 而不使用 idea 你就鄙视他一样,也许你在 idea 上还没别人用 eclipse 用的6。)
如果所谓的 [ 会 git ] 等同于 [ 基本掌握 git 的所有用法里面的大部分用法 ] 的话:
我觉得所有 git 用户里面只有很少一部分掌握了 git 的大部分用法,平时我们工作主要就是 clone add commit pull push,再多一些什么 checkout,log,branch 等等这些较低频次的用法,但这些功能也只不过占了 git 所有功能的一小部分而已。
这算不算“不会 git ”呢。如果鄙视这种“不会 git ”的人的话,我觉得 前端群 里面 90%以上的人都怕是要被你鄙视了。
现在很多人有一种很不好的心态,不专心搞技术,各种所谓的高大上的东西都简单学一下,然后鄙视那些不会这些东西的。比如一些技术群里经常能看到一些用一个东西就优越感爆棚的话语,“这个网站封的好,我有 ss 随便封”(ss 鄙视,挺搞笑的是吧),“这个问题你不会谷歌吗,都 2018 年了,你说你不会上谷歌,Are u(注意:这里一定要用 u 才能鄙视用 you 的) kidding me ?”(谷歌鄙视,用一个搜索引擎也值得鄙视?)
还有比如我现在这篇文章没有用 markdown 语法,可能也要被鄙视了,然后我前面的 Markdown 的 M 没有大写,也要被鄙视了。
我说说我自己关于鄙视的看法,如果你要真的鄙视别人,你至少得跟别人拉开几个档次吧,比如是你在 ECMAScript的造诣已经达到登峰造极能与 javascript之父谈笑风生的地步,OK 你可以鄙视那些连原型链都不知道是什么东西的人,但是你如果只不过刚学 javascript两三年,就去鄙视那些刚入门的连原型链都不知道是什么东西的菜鸟,那确实挺低端的了。
况且一个真正热爱技术的人,真的没有闲心和时间去鄙视别人不会这个不会那个。
「 鄙视链毫无意义,该停止了 」
我觉得鄙视 xxx 的态度,这类可以理解;鄙视 xxx 目前的技术掌握情况。。真正的大神不会如此吧。。毕竟技术是要有经验积累,我之前老大从初中就开始玩儿编程,现在学任何新技术上手都贼快,大多数是因为他经历的多,掌握的技术栈雄厚,已经触类旁通,很多都可以类比到传统技术栈做展开。
打个比方。
开百万豪车鄙视零头不到的几万车的买菜车,这只是一种无礼的行为。
买菜车通勤不比豪车差,碰上堵车,豪车也飞不过去,严重事故豪车也一样死翘翘。
但会开动车和会开车完全是回事,乱开远光灯,无脑加塞等把他人和自己的安全当儿戏的行为可不是会开车人的表现。
svn 和 git 就好比买菜车和豪车,基本的源码版本控制功能都能满足,只是 git 多了些酷炫的功能而已。
但会 git push 命令并不表示会 git,你难道就忘记前几天疯传的因 git push -f 而发生的惨案了吗?
因为自己的技术不精且不认真学习的,而给其它协作者带来困扰,这种人才是被鄙视的对象。
会使用 git 的表现和会 linux 一样。你从网上复制出解决你问题的命令时,你至少要知道这些命令的意思,执行它会引发什么后果,如果别人恶作剧把 git status | sudo rm -rf / 贴在网上,而你不假思索的就执行了,还傻傻的输了密码,如果不鄙视你,难不成还说,"小伙子,你真棒"。
回到 git 鄙视。。 会用 git 和 懂 git 是两个层次,可能会有半数的人不知道 merge 和 rebase 对于节点的操作区别,以及 怎样才能维持 master 在节点上的洁净,甚至。。不知道 stash、cherry-pick 这类命令。。
但说白了。。。在同一家公司的技术人员,,有那么复杂么,你不会的我会,我不会的他会,互相讨教共同进步升职加薪才是正道啊。。
程序员鄙视链到你我这停止吧!
老前辈送你一句警世良言,希望你能牢牢记住:“与人为善,福虽未至,祸已远离”。
「 写在最后 」
说到底,一项技能,是否重要,还是看市场需求,还有就是通用程度。当每个程序员都会使用git的时候,你还不会使用,那就有些说不过去了。
闰土小叔,前端圈里妹子关注最多的技术号,不定时分享互联网码农的工作经验,以及程序员职场感悟。前端路上,土叔陪5W+同行一起成长!
不会git的程序员,会不会被鄙视?的更多相关文章
- git(程序员的时光机)
git 是什么 最强大的分布式版本控制系统,没有之一 版本控制: 完成一项任务,最终的成果可能是经过中间修修修改n次得到的,在这n个版本之间的切换就叫版本控制. 集中式的版本控制svn,cvs缺点: ...
- 程序员遇到BUG的解释
开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定.如何进行修复bug的过程,是值得我们好好推敲的. 我想分享 ...
- 程序员遇到Bug时的30个反应
开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...
- <初级程序员> git 的初级使用
作为程序员,Git 是一个很好的代码管理工具.Git 是一个版本控制系统,主要的作用就是记录代码的修改过程,有效的追踪文件的变化.当代码出现错误的时候可以很容易的恢复到之前的状态,不管对于个人开发还是 ...
- 程序员Git代码托管平台
程序员Git代码托管平台 说到Git代码托管平台,首先推荐的是GitHub,好多好的开源项目都来自GitHub,但是GitHub只能新建公开的Git仓库,私有 仓库要收费,如果你做的是一个开源项目,可 ...
- [Git] git shortlog 找出最懒的程序员
转载:http://blog.csdn.net/qinjienj/article/details/7795802 场景假设:一个开发小组有10个程序员,他们用 Git 做版本控制,某一天程序员A pu ...
- Git 程序员篇
关于 Git Git 背后的故事 伟大的作品总是诞生于伟大的时代,正如 Git 同样诞生于一个英雄辈出.极富纷争的年代. 2005 年,Linux 内核开发社区正面临严峻的挑战:他们不能继续使用 Bi ...
- 程序员必备基础:Git 命令全方位学习
前言 掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~ https: ...
- Git学习总结(6)——作为一名程序员这些代码托管工具你都知道吗?
作为一名程序员这些代码托管工具你都知道吗? 作为一名优秀的开发者,大家都会用到代码托管,我本人用的是github,确实github里面有很多很多开源的项目,所以我们目前的创业项目程序员客栈www.pr ...
随机推荐
- [Kubernetes]资源模型与资源管理
作为 Kubernetes 的资源管理与调度部分的基础,需要从它的资源模型说起. 资源管理模型的设计 我们知道,在 Kubernetes 里面, Pod 是最小的原子调度单位,这就意味着,所有和调度和 ...
- 在windows下安装php redis扩展
我在本地是phpstudy集成环境,但是没有redis扩展,需要自己安装 1.先看清楚自己的php配置,在安装对应的 php_redis.dll 和 php_igbinary.dll php_redi ...
- SQLAlchemy+Flask-RESTful使用(二)
前言 本来没想到能这么快出二的,谁知道序列化组件写上头了.分享知识真的会上瘾.... 变更记录 # 19.3.18 起笔 # 19.3.18 使用SQLAlchemy排序方法 # 19.3.18 补充 ...
- MUI底部导航切换子页面
1.登陆页面进入之后,进入到main页面,main页面只有一个底部导航,然后引入子页面进行渲染. <nav class="mui-bar mui-bar-tab" id=&q ...
- PHP客服聊天
1.基于workman框架 github:https://github.com/walkor/workerman-chat 文档:http://www.workerman.net/gatewaydoc ...
- java:包、继承,访问修饰符
包 包(package) 用于管理程序中的类,主要用于解决类的同名问题.包可以看出目录. 包的作用 [1] 防止命名冲突. [2] 允许类组成一个单元(模块),便于管理和维护 [3] 更好的保护类.属 ...
- C# EntityFramework Code First 迁移 降级 回退到空数据库
C# EntityFramework Code First 迁移 降级 回退到空数据库 1.包管理器控制台-迁移 在包管理器控制台中运行 Enable-Migrations Add-Migratio ...
- 高可用Redis(十一):使用redis-trib.rb工具搭建集群
环境说明: 两台虚拟机,IP地址分别为:192.168.81.100和192.168.81.101 虚拟机系统为:CentOS 7.5 Redis为yum安装,版本为3.2 系统环境:关闭firewa ...
- 十 LVS 负载均衡
回顾nginx 反向代理负载均衡 负载均衡的妙用 负载均衡(Load Balance)集群提供了一种廉价.有效.透明的方法, 来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力. 提 ...
- linux设置环境变量(这里以hive为例给大家举例)
1.进入: cd /export/servers/hive/bin/ -rwxr-xr-x. 1 root root 1031 Apr 30 2015 beeline-rw-r--r--. 1 roo ...