標籤:

從0開始學習 GitHub 系列之「初識 GitHub」

## 1. 寫在前面

我一直認為 GitHub 是程序員必備技能,程序員應該沒有不知道 GitHub 的才對,沒想到這兩天留言里給我留言最多的就是想讓我寫關於 GitHub 的教程,說看了不少資料還是一頭霧水,我轉念一想,我當初接觸 GitHub 也大概工作了一年多才開始學習使用,我讀者里很多是初學者,而且還有很多是在校大學生,所以不會用 GitHub 也就不奇怪了,所以我覺得寫一寫關於 GitHub 的教程就非常有必要了!

## 2. 為什麼還要造輪子

很多人難免要問這個問題,說網上關於 GitHub 的資料很多,為什麼還要寫呢?講真,網上關於 Android 的資料更多,為什麼你們還喜歡看我寫的文章呢?是因為哪怕同樣的內容,我寫出來之後就有了我的風格,除了我的幽默以及我的帥,關鍵的是我有辦法讓你們看的輕鬆易懂,並且還有我個人的一些見解與指導,這大概是一種特殊的魅力吧!

我是從小白一路過來的,很能理解你們內心的感受與困惑,因為這些階段都是我自己親身經歷過的,所以我寫的文章都會從你們的角度去出發,並且我對文章高要求,除了排版、配圖很用心外,文章的內容每次寫完我都會親自看三四遍,確保不會出現誤導以及你們理解不了的情況,你們看的很輕鬆易懂的文章其實因為我背後做了很多的功課。

所以,為了你們,我覺得有必要用我的風格去教你們如何從0開始,跟著我一步步學習 GitHub !

## 3. 什麼是 GitHub

確切的說 GitHub 是一家公司,位於舊金山,由 Chris Wanstrath, PJ Hyett 與 Tom Preston-Werner 三位開發者在2008年4月創辦。這是它的 Logo:

2008年4月10日,GitHub正式成立,地址:How people build software · GitHub ,主要提供基於git的版本託管服務。一經上線,它的發展速度驚為天人,截止目前,GitHub 已經發展成全球最大的開(同)源(性)社區。

## 4. GitHub 與 Git 的關係

這個我還專門在群里調查過,很多人以為 GitHub 就是 Git,其實這是一個理解誤區。

Git 是一款免費、開源的分散式版本控制系統,他是著名的 Linux 發明者 Linus Torvalds 開發的。說到版本控制系統,估計很多人都用過 SVN ,只不過 Git 是新時代的產物,如果你還在用 SVN 來管理你的代碼,那就真的有些落伍了。不管是學習 GitHub ,還是以後想從事編程行業,Git 都可以算是必備技能了,所以從現在開始建議你先去學習熟悉下 Git ,後面我會有文章推薦一些適合新手的 Git 學習資料給你們。

而 GitHub 上面說了,主要提供基於 git 的版本託管服務。也就是說現在 GitHub 上託管的所有項目代碼都是基於 Git 來進行版本控制的,所以 Git 只是 GitHub 上用來管理項目的一個工具而已,GitHub 的功能可遠不止於此!

## 5. GitHub 的影響力

上面我說了 GitHub 現在毫無疑問基本是全球最大的開源社區了,這樣說你們可能認為未免有點浮誇,且聽我一一舉證:

全球頂級科技公司紛紛加入 GitHub ,並貢獻他們自己的項目代碼

  • Google: Google · GitHub

  • 蘋果: Apple · GitHub

  • Facebook: Facebook · GitHub

  • Twitter:Twitter, Inc. · GitHub

  • 微軟:github.com/microsoft

  • Square:github.com/square

  • 阿里:github.com/alibaba

  • ...

全球頂級開源項目都優先選擇在 GitHub 上開源

  • Linux:github.com/torvalds/lin

  • Rails:github.com/rails/rails

  • Nodejs:github.com/nodejs/node

  • Swift:github.com/apple/swift

  • CoffeeScript:github.com/jashkenas/co

  • Ruby:github.com/ruby/ruby

  • ...

全球頂級編程大牛加入GitHub

  • Linux 發明者 Linus Torvalds:github.com/torvalds

  • Rails 創始人 DHH:github.com/dhh

  • 被稱為「Android之神」的 JakeWharton:github.com/JakeWharton , 你們用的很多開源庫如 ButterKnife、OkHttp、 Retrofit、 Picasso、ViewPagerIndicator 等都是出自他之手!

其他就不一一列舉了,GitHub 上活躍的很多是 Google 、Square、阿里等公司的員工,有些甚至還是Google Android Team組的,所以在這裡你可以接觸到全球頂級編程大牛!

## 6. GitHub 有什麼用

  • 學習優秀的開源項目

開源社區一直有一句流行的話叫「不要重複發明輪子」,某種意義上正是因為開源社區的貢獻,我們的軟體開發才能變得越來越容易,越來越快速。試想你在做項目時,如果每一模塊都要自己去寫,如網路庫、圖片載入庫、ORM庫等等,自己寫的好不好是一回事,時間與資源是很大的成本。對於大公司可能會有人力與資源去發明一套自己的輪子,但是對於大部分互聯網創業公司來說時間就是一切。而且你在使用開源項目的過程也可以學習他們優秀的設計思想、實現方式,這是最好的學習資料,也是一份提升自己能力的絕佳方式!

  • 多人協作

如果你想發起一個項目,比如翻譯一份不錯的英文文檔,覺得一個人的精力不夠,所以你需要更多的人參與進來,這時候 GitHub 是你的最佳選擇,感興趣的人可以參與進來,利用業餘時間對這個項目做貢獻,然後可以互相審核、合併,簡直不要太棒!

  • 搭建博客、個人網站或者公司官網

這個就不用多說了,現在越來越多的博客都是基於 GitHub Pages 來搭建的了,你可以隨心所欲的定製自己的樣式,可以給你博客買個逼格高的域名,再也不用忍受各大博客網站的約束與各式各樣的廣告了!

  • 寫作

如果你喜歡寫作,而且基於 Markdown, 並準備出版書籍,那麼推薦你用 Gitbook ,技術寫作人的最愛!

  • 個人簡歷

如果你有一個活躍的 GitHub 賬號,上面有自己不錯的開源項目,還經常給別的開源項目提問題,push 代碼,那麼你找工作將是一個非常大的優勢,現在程序員的招聘很多公司都很看中你 GitHub 賬號,某種意義上 GitHub 就可以算是你的簡歷了。而且不僅國內,很多國外的科技公司都會通過 GitHub 來尋找優秀的人才,比如我甚至通過 GitHub 收到過 Facebook 的邀請郵件!

  • 其他

當然 GitHub 能做的還遠不止這些,我見過很多在 GitHub 搞的一些有意思的項目,有找男朋友的,甚至還有利用 GitHub 的 commit 喪心病狂的秀恩愛的,沒錯,那個喪心病狂的人就是我,如果你前段日子關注了我的 GitHub ,那麼能看到這麼一個壯觀的景象:

## 7. 加入 GitHub

讀完我的文章,我相信你已經蠢蠢欲動了,從現在開始,立刻、馬上去註冊個 GitHub 「How people build software · GitHub」,去體驗一番,不會用不要緊,接下來我會有一系列詳細的文章,來教你學會使用 GitHub !

但是為了保證文章的質量,我要做很多準備工作,我沒法保證每天都會連載,但是我會儘力儘快更新這個系列,讓你們從0開始一步步一起來學習,如果周圍有同學或者朋友想要學習的,那趕緊轉發或者推薦他關注這個系列的文章,畢竟有個小夥伴一起學會更有氛圍,後續除了理論我還會考慮結合實踐,我不信你學不會!

本文原創發佈於微信公眾號 AndroidDeveloper「googdev」,轉載請務必註明出處!

推薦閱讀:

GitHub|2017年 倫敦深度學習研討會資料庫(附資源)
GitHub 上有哪些優美的 node.js 框架?
access 和 git有什麼關係 是同一類型的軟體嗎?

TAG:Android | GitHub | Git |