昨天一朋友在微信上問了我一個問題,我以爲頗有趣,因而將本次聊天的內容分享給你們。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的時候,你還不會使用,那就有些說不過去了。
閏土小叔,前端圈裏妹子關注最多的技術號