昨天一朋友在微信上问了我一个问题,我觉得很有趣,于是将本次聊天的内容分享给大家。

我朋友说,如果一个程序员不会使用 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的程序员,会不会被鄙视?的更多相关文章

  1. git(程序员的时光机)

    git 是什么 最强大的分布式版本控制系统,没有之一 版本控制: 完成一项任务,最终的成果可能是经过中间修修修改n次得到的,在这n个版本之间的切换就叫版本控制. 集中式的版本控制svn,cvs缺点: ...

  2. 程序员遇到BUG的解释

    开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定.如何进行修复bug的过程,是值得我们好好推敲的. 我想分享 ...

  3. 程序员遇到Bug时的30个反应

    开发应用程序是一个非常有压力的工作.没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象.面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉 ...

  4. <初级程序员> git 的初级使用

    作为程序员,Git 是一个很好的代码管理工具.Git 是一个版本控制系统,主要的作用就是记录代码的修改过程,有效的追踪文件的变化.当代码出现错误的时候可以很容易的恢复到之前的状态,不管对于个人开发还是 ...

  5. 程序员Git代码托管平台

    程序员Git代码托管平台 说到Git代码托管平台,首先推荐的是GitHub,好多好的开源项目都来自GitHub,但是GitHub只能新建公开的Git仓库,私有 仓库要收费,如果你做的是一个开源项目,可 ...

  6. [Git] git shortlog 找出最懒的程序员

    转载:http://blog.csdn.net/qinjienj/article/details/7795802 场景假设:一个开发小组有10个程序员,他们用 Git 做版本控制,某一天程序员A pu ...

  7. Git 程序员篇

    关于 Git Git 背后的故事 伟大的作品总是诞生于伟大的时代,正如 Git 同样诞生于一个英雄辈出.极富纷争的年代. 2005 年,Linux 内核开发社区正面临严峻的挑战:他们不能继续使用 Bi ...

  8. 程序员必备基础:Git 命令全方位学习

    前言 掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~ https: ...

  9. Git学习总结(6)——作为一名程序员这些代码托管工具你都知道吗?

    作为一名程序员这些代码托管工具你都知道吗? 作为一名优秀的开发者,大家都会用到代码托管,我本人用的是github,确实github里面有很多很多开源的项目,所以我们目前的创业项目程序员客栈www.pr ...

随机推荐

  1. LTPS、IGZO、OLED都是什么?【转】

    转自:https://www.sohu.com/a/226454503_99913194 薄化行业的小伙伴,经常有听到LTPS.IGZO.OLED等英文缩写名词.但究竟他们是什么意思?他们之间有什么区 ...

  2. ubuntu常用命令及操作,包括安装CUDA

    chmod Document 这里Document是一个文件夹,文件夹中还有好多子文件,可以发现执行了这条指令以后,其子文件夹的权限并没有改变. 要想改变其子文件夹的权限,应该执行 Document/ ...

  3. Android应用市场的帮助类

    写了一个Android应用市场的帮助类,如下: public class MarketUtils { public static final String MARKET_DATA = "ma ...

  4. Unity iOS Appstore 上架的问题

    之前一直是一个人的名义上架的应用.现在变成:公司的账号就会出现一些莫名的问题: 首先是账号需要新的boulder名字,新建之后下载验证key. 注意:真机测试不发布,选择自动签名就行了:需要发布就取消 ...

  5. java实现一个简单的Web服务器

    注:本段内容来源于<JAVA 实现 简单的 HTTP服务器> 1. HTTP所有状态码 状态码 状态码英文名称 中文描述 100 Continue 继续.客户端应继续其请求 101 Swi ...

  6. 怎么编辑PDF文件内容,PDF文件编辑方法

    怎样编辑PDF文件内容?这是一个常常困扰我们的问题,工作当中我们经常会收到PDF格式的文件,但有时的文件内容不是我们想要的或者是觉得不合理的需要改掉.但是每次有这样的问题时都没有什么好的解决方法,每次 ...

  7. Linux基础-命令

    命令格式:command  [-options] [paramter] command: 命令名,相应功能英文单词或缩写 options: 选项,对命进行控制,也可省略 paramter:传送给命令的 ...

  8. [转] iphoneX、iphoneXS、iphoneXSMax、iphoneXR适配

    基础知识 1. 关于iphoneX .iphoneXS.iphoneXSMax.iphoneXR机型的大小和像素   机型尺寸 注意:开发人员只需要记住开发尺寸 2. 屏幕组成 齐刘海(44px) + ...

  9. Flink+kafka实现Wordcount实时计算

    1. Flink Flink介绍: Flink 是一个针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.目前主要还是依靠开源社区的贡献而发展.对 Flink 而言,其所要处理的主要场 ...

  10. 阿里云+WordPress搭建个人博客

    搭建过程: 第一步:首先你需要一台阿里云服务器ECS,如果你是学生,可以享受学生价9.5元/月 (阿里云翼计划:https://promotion.aliyun.com/ntms/act/campus ...