Git算不算程序員的必備技能?

如題,本人軟體專業本科生,不知道企業裡面都是怎麼進行代碼管理的,請各位前輩分享一下~


git是必備技能,一天學會→ Git教程


是的,不掌握的話會讓你在使用git的團隊里工作效率很低,而且不恰當的操作,比如說搞亂提交歷史等等還會引起同事的不爽。而現在使用git的團隊越來越多。

現在git不光是個工具,其實還是種社交手段,比如說github就是個大型使用git來讓程序員們來交流的地方。我不需要看你說什麼,我只看你改了什麼。

另外,很多大型分散式系統可以使用git作為一種文件存儲方式。比如說你的配置文件,可以通過git來准實時擴散到幾千個節點。

所以,就算你現在的團隊使用其他版本控制工具,我也牆裂建議你能花點時間掌握git。


不是。版本控制系統(VCS)是必備技能,否則沒法做大工程。但git不是一定要掌握,畢竟VCS那麼多鍾。總的來說掌握一個非分散式VCS,和一個分散式VCS,還是必要的。這兩套系統的思路和解決問題的方法都很不一樣,會影響工作流。


不是Git是程序員必備技能

而是代碼管理是程序員必備技能


現階段,算。


版本控制是程序員必備技能,git又是最廣泛使用的版本控制工具,所以,git算是程序員最好具備的技能。

當然,你可以說我會寫代碼就行,不用會某個特定編輯器,但是,編輯器是一個人自己的事,版本控制可是很多人一起的事啊,往往由不得你。


我司SVN和Git都在用

SVN主要給策劃美術使用

Git給程序使用


17. 從不穩定的分支,新建分支開始寫代碼合併進了發板的分支,將舊bug帶到了線上,記住只能從master上拉分支

--------------------------------------------------------------------------------------

寫程序需要一顆強大的內心

寫程序需要一顆強大的內心

寫程序需要一顆強大的內心

1.進公司先讓頭開許可權

2.配置ssh

3.拉代碼代碼比較大拉不下來,你可能用的web方式。打死你也不明白為什麼拉不下來。

4.在學校用git add. 進了公司被罵一頓

5.拉代碼沒有鉤上rebase 又被罵一頓,把git線搞亂了

6.打包打了一個已經有的標籤,把線上代碼的備份覆蓋了,又被罵一頓

7.合併代碼衝突了,搞出線上事故,再被罵一頓,也可能被開了

8.維護git伺服器,rm -rf /把代碼庫刪了,再被罵一頓

9.熬夜寫到四點, 切換分支按了discard all,自掛東南枝吐血而亡

10.切換分支,工具bug,代碼丟失,明天提測,自掛東南枝吐血而亡

11. 自己開了好幾個分支,被同事罵,讓你趕快刪分支

12. 順手刪了張圖片不小心提上線了,被罵一頓,自掛東南枝吐血而亡

13. cao 需求改了,合作談崩潰。代碼提了一坨一坨的如何回滾。

14.一個公司的人在拉代碼,老大說你得解決拉不下來的問題,我做客戶端的。。。。。。。。。一臉懵逼

15.安全部門掃到git伺服器弱密碼,全公司通報批評

16.如何安全備份代碼伺服器,萬一硬碟壞了怎麼辦。。。那天硬碟壞了,熬夜修復,猝死遂終

寫程序需要一顆強大的內心

寫程序需要一顆強大的內心

寫程序需要一顆強大的內心


版本控制是基本技能。Git 是必備技能。

基本上,除了超級大項目,Git 都能管理。

如果不用 Git 管理,那麼在 code 備份遷移等工作上,都需要更多的精力投入,甚至需要專門的維護者。

所以說,你要硬說「我了解了版本控制的概念,但是因為公司不用 Git 所以我自己也不用也不會」,那是給自己找麻煩。也絕了自己個人和小團隊完成一些 side project 的方便之門。


git 是革命性的、成癮的,一旦用上之後就再也回不去了。TA 類似於 SSD 對於電腦的性能;類似於單元測試、測試驅動開發、結對編程和持續集成對於軟體工程;類似於 Ruby on Rails 對於 Web 開發;類似於 Docker 對於運維;類似於 GitHub + Travis + Jekyll 對於博客。

即使你不去用 TA,也要用 TA 的某種替代品。也許通往真理的道路有很多條,但真理都是一樣的。


已經比較少有人談svn了。因為太簡單,也無新意。

我這麼說是有依據的: https://www.google.com/trends/explore#q=git%2C%20svncmpt=qtz=Etc%2FGMT-8

我會去掌握,因為:

1. git的大形勢是淘汰svn的。主流的託管代碼網站都支持,且svn的漸無聲息

2. git的分支,支持隨時想法隨時改隨時推翻而版本安全,且不影響其他程序員,這個太好

3. git的複雜,是可以通過學習和工具來消解的

訓練,不斷訓練。我確實知道很多人不需要學習 git。我很難說服他們,因為他們不是需要說服,而是需要給它一個霸道的形勢直接讓他就範。滿足工作需求,這個太容易,總在此環境中的,於是學習東西就會越來越難。外部大環境,必然影響公司小環境,很多公司就是等著就範的:)

BTW : 我個人不喜歡以品味神級來證明什麼,這樣差不多是陷入了虛無縹緲的魔道了。

## 廣告

http小書 圖靈社區 : 圖書 : HTTP 小書

Git小書 圖靈社區 : 圖書 : Git小書


如果在前期,你不知道其他版本控制工具,git是你最好的選擇。

我在大學期間,就開始做一些項目,就是通過git來協助完成的。


有品味的程序員必備技能。我用過幾乎所有的版本控制系統,perforce算稍微正常點,其他都很一般。

Git屬於神器級別的軟體,和Emacs,Vim一個級別。

比如這是我Emacs和git結合的例子,關鍵是git提供那麼多強大的功能,

Hello Ivy-mode, bye Helm

順便提一下,自從我精通git後,其他所有版本系統都融會貫通,在一些所謂的top公司中,我還沒有看到有比我perforce或者svn操作效率更高的。

這裡列出了我在bash,emacs中使用perforce的技巧:Use Perforce inside Emacs


源碼管理當然是必備技能。但是Git跟其他源碼管理的工具有一個本質的區別,就是一旦斷網了,打不開攻略,很容易GG(逃

用過這麼多東西,讓我感覺最好的還是Hg。


是的,尤其是對於單身狗程序員來說。不會git意味著無法充分利用github這個全球最大的同性交友網站。

不過有些團隊有自己的代碼管理庫,比如阿里後端常用svn,巨硬還用那個超級傻的source depot,說起這破爛我就來氣。


版本控制工具才是必備的,Git不是。

我用過Git和SVN,讓我選的話,我選Git...


本地開發需要版本控制,git是最簡單的方案。而且無縫push到遠程。

有人說個人項目不用git的,其實git才最適合個人使用。


當然不是必須的。你要的是版本控制,但不一定是Git。大部分人知道Git是因為GitHub很時髦,或者是因為Linus。而現實是很多公司仍在用SVN。再比如我,寫了不少東西但都沒往GitHub上扔。為什麼呢?既然沒有面試、找工作方面的需求,也就沒什麼動力。

版本控制是一項專業技能,專業程序員都必須掌握。但Git不一定。而如果你想跟現代程序員很好地、愉快地對話,你就得了解Git跟GitHub~


遊戲圈git使用率很低。

一方面git處理大的二進位文件有缺陷(可以用github的LFS解決)

一方面和策劃美術協作方面工作流比較蛋疼,畢竟命令行神馬的和麻瓜的世界不兼容。

嗯。


目前 Git 可以算是版本控制系統的事實標準了,可以算必備技能。當然不排除還是有些公司用 Perforce,但那個是收費的,你也不可能自己去買來用。而 SVN 的話,現在用 SVN 的公司和開源項目都開始逐漸遷移到 Git 了,而且會用 Git 了學其他版本管理軟體的使用也是很容易的。所以就用 Git 吧。


推薦閱讀:

代碼寫得好,但是不會(不願)使用 Git 之類的代碼管理工具能稱得上是優秀程序員嗎?
Github上都有哪些有用但不為大家熟知的小功能?
git clone一個github上的倉庫,太慢,經常連接失敗,但是github官網流暢訪問,為什麼?
一個人寫程序,版本控制用svn還是git?
用 Git 一定要用命令行嗎?用命令行一定高貴嗎?

TAG:程序員 | Git | 代碼管理 |