昨天一朋友在微信上问了我一个问题,我以为颇有趣,因而将本次聊天的内容分享给你们。javascript
我朋友说,若是一个程序员不会使用 git,会不会被别人以为低一个档次?前端
事先声明啊,这与公司技术栈无关,不要说有些公司只用 git 管理。对于公司而言,使用什么版本控制有必定的考虑或者历史缘由。但若是你遇到一个不会 git 的新同事,会不会感受 ta 之前的公司有点low ?java
我当时就回复了他四个大字:同行相轻。linux
不得不说,近年来,使用git的公司愈来愈多,甚至已经成为了主流。当你去一家使用git的公司时,掌握它就成为了硬性指标。若是你在公司遇到一个不会git的新同事,也不要大惊小怪,可能人家以前呆的单位用svn。git
我的感受讨论这些有点 low,说白了一个工具而已,编程能力才是最重要的吧!程序员
git 重不重要,挺重要,但不是企业主要的考核标准。企业用到,不会就学。企业用不到,我干吗要学,学不学都无所谓。编程
说真的,我以前也和这哥们有一样的想法,直到有一天下班前在工做群里看到通知:“某同窗 recursive sed 代码出错,无视 conflict 强行 push 致使集群瘫痪,现已关闭全部人该 repo 权限,工做未提交的同窗晚上加下班等通知,恢复时间未知”。安全
由于本身的技术不精且不认真学习的,而给其它协做者带来困扰,这种人才是被鄙视的对象。微信
因此,我认为,会不会其实没什么大问题,只要虚心认可本身的实际水平就好,比较烦这几种状况:markdown
1.履历上说本身精通 git,实际上连 merge 和 rebase 的区别都不清楚。
2.工做中在用 git,但只知足于 pull push commit merge 的基本用法,不求甚解。
3.无视团队 git 操做规定,肆意使用危险操做指令。
因此,成熟公司都有 CodeReview 的制度,不会用 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 ] 等同于 [ 网上随便一查十几分钟就能学会的 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的时候,你还不会使用,那就有些说不过去了。
闰土小叔,前端圈里妹子关注最多的技术号