从0开始学习GitHub系列之「认识并加入GitHub」
從0開始學習GitHub系列之「認識并加入GitHub」
糖果果| 2016-06-16 16:01 ?? 瀏覽量(245) ?? 評論(0) ??推薦(0) 數據小編注:【從0開始學習 GitHub】是一個系列文,作者stormzhang,原創發布于微信公眾號 AndroidDeveloper「googdev」,之后小編會持續分享給大家,另外轉載請務必注明出處!本文包含兩個部分,一是帶你充分認識 GitHub,二是如何加入 GitHub,如果你還不會用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月創辦。
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: https://github.com/google
· 蘋果: https://github.com/apple
· Facebook: https://github.com/facebook
· Twitter:https://github.com/twitter
· 微軟:https://github.com/microsoft
· Square:https://github.com/square
· 阿里:https://github.com/alibaba
…
全球頂級開源項目都優先選擇在 GitHub 上開源
· Linux:https://github.com/torvalds/linux
· Rails:https://github.com/rails/rails
· Nodejs:https://github.com/nodejs/node
· Swift:https://github.com/apple/swift
· CoffeeScript:https://github.com/jashkenas/coffeescript
· Ruby:https://github.com/ruby/ruby
…
全球頂級編程大牛加入GitHub
· Linux 發明者 Linus Torvalds:https://github.com/torvalds
· Rails 創始人 DHH:https://github.com/dhh
· 被稱為「Android之神」的 JakeWharton:https://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 需要翻墻么?
印象中 GitHub 之前確實總是斷斷續續的訪問不了,不過在13年初的時候有段時間最嚴重,一度被封了,當時李開復老師再也忍無可忍,公開發了一條抗議 GitHub 被封的微博,這事我印象很深,因為我是12年底加入的 GitHub ,那時候簡直像遇到世外桃源一般,但是也深受老是訪問不了的困擾,很多人早就對這件事怨聲載道了,加上李開復老師的聲討,這一下就炸開了鍋,微博上紛紛轉發譴責,算的上是整個IT界的大新聞,后來因為這事影響太大了,沒過幾天 GitHub 就可以正常訪問了,這里真的要感謝李開復老師敢于站出來的勇氣,可以這么說,如果沒有 GitHub ,中國的編程水平起碼要倒退好多年!
因為 GitHub 的影響力太大,基本上是各種黑客攻擊的對象,所以現在偶爾也會有宕機訪問不了的情況,但是好在不會被封,所以大家不用擔心,訪問 GitHub 不用翻墻,只是可能訪問速度稍慢些,另外為了維護一個和諧的環境,這里也呼吁大家不要在 GitHub 上發表任何關于政治的言論與文章,在 GitHub 上我們只是單純的技術交流,無關政治,在復雜的大環境下,希望 GitHub 永遠是我們程序員的一片凈土!
英語差、0基礎學得會么?
這個也是不少人問我的,GitHub 雖然都是英文,但是對英語水平的要求不是那么高,都是些簡單的單詞,遇到不會的查一下就行了,你覺得很難只是你對英文網站反射性的抵觸而已,相信我,跟著我的詳細教程,我的文章面向從沒有接觸過甚至沒有聽過 GitHub 的同學,一步步教你由淺入深。如果你學不會,那么來打我,不過我這么帥,你也不忍心!
到這里如果你已經打消了疑問,那就趕緊加入吧。
二、加入 GitHub
1. 注冊 GitHub
先去 GitHub 官網「How people build software · GitHub」注冊「Sign Up」個賬號,注冊頁面如下:
這個應該沒啥說的,需要填用戶名、郵箱、密碼,值得一提的用戶名請不要那么隨便,最好取的這個名字就是你以后常用的用戶名了,也強烈建議你各大社交賬號都用一樣的用戶名,這樣識別度較高,比如我的博客域名、GitHub、知乎等其他社交賬號 ID 都是 stormzhang ,微博是因為被占用了,無奈換了個id,而且這個用戶名以后在 GitHub 搭建博客的時候默認給你生成的博客地址就是 http://username.github.io ,所以給自己取個好點的用戶名吧。
填好用戶名、郵箱、密碼緊接著到這一步:
這個是什么意思呢?GitHub 有兩種,一種是公開,這種是免費的,就是你創建的項目是開放的,所有人都能看得到;另一種是私有,這種是收費的,這種一般是很多企業在使用 GitHub 的私有倉庫在托管自己的項目,這也是 GitHub 的一種盈利模式對于個人你就直接默認選擇公開的就行了。
2. 認識 GitHub
注冊成功之后你會到 GitHub 的主頁面來:
你如果是新注冊的可能看到的跟我不一樣,因為你們新用戶,沒有自己的項目,沒有關注的人,所以只有一個導航欄。
導航欄,從左到右依次是 GitHub 主頁按鈕、搜索框、PR、Issues、Gist(這些概念后面會講的)、消息提醒、創建項目按鈕、我的賬號相關。
我的 Timeline,這部分你可以理解成微博,就是你關注的一些人的活動會出現在這里,比如如果你們關注我了,那么以后我 star、fork 了某些項目就會出現在你的時間線里。
我的項目,這部分就不用說了,如果你創建了項目,就里就可以快捷訪問。
3. GitHub 主頁
點擊下圖的 Your profile 菜單進入到你的個人 GitHub 主頁。
還是以我的 GitHub 主頁為例:
這么詳細應該不會看不懂吧?只不過你的賬號可能沒有這么豐富,因為你可能啥也沒做過,但是如果做全了基本上就會看到跟我一樣的了。
4. 設置你的 GitHub
如果你是新注冊的 GitHub 賬號,是不是覺得很簡陋?雖然你沒有自己的項目,但是第一步起碼要先完善自己的信息,點擊如下的 Settings 菜單:
到設置頁面來設置一些基本信息:
像頭像、Name 建議要設置一個常用的,這兩個很有識別性,公開的郵箱也要設置一個,這樣那些企業啊、獵頭啊就通過這個公開郵箱去聯系你,友情提醒:別在 GitHub 把自己的 QQ 郵箱放上去,不顯得太 low 了么?沒有 gmail 郵箱,起碼也得注冊個 foxmail、163 郵箱之類的吧。
5. GitHub 基本概念
上面認識了 GitHub 的基本面貌之后,你需要了解一些 GitHub 的基本概念,這些概念是你經常會接觸并遇到的。
· Repository
倉庫的意思,即你的項目,你想在 GitHub 上開源一個項目,那就必須要新建一個 Repository ,如果你開源的項目多了,你就擁有了多個 Repositories 。
· Issue
問題的意思,舉個例子,就是你開源了一個項目,別人發現你的項目中有bug,或者哪些地方做的不夠好,他就可以給你提個 Issue ,即問題,提的問題多了,也就是 Issues ,然后你看到了這些問題就可以去逐個修復,修復ok了就可以一個個的 Close 掉。
· Star
這個好理解,就是給項目點贊,但是在 GitHub 上的點贊遠比微博、知乎點贊難的多,如果你有一個項目獲得100個star都算很不容易了!
· Fork
這個不好翻譯,如果實在要翻譯我把他翻譯成分叉,什么意思呢?你開源了一個項目,別人想在你這個項目的基礎上做些改進,然后應用到自己的項目中,這個時候他就可以 Fork 你的項目,這個時候他的 GitHub 主頁上就多了一個項目,只不過這個項目是基于你的項目基礎(本質上是在原有項目的基礎上新建了一個分支,分支的概念后面會在講解Git的時候說到),他就可以隨心所欲的去改進,但是絲毫不會影響原有項目的代碼與結構。
· Pull Request
發起請求,這個其實是基于 Fork 的,還是上面那個例子,如果別人在你基礎上做了改進,后來覺得改進的很不錯,應該要把這些改進讓更多的人收益,于是就想把自己的改進合并到原有項目里,這個時候他就可以發起一個 Pull Request(簡稱PR) ,原有項目創建人就可以收到這個請求,這個時候他會仔細review你的代碼,并且測試覺得OK了,就會接受你的PR,這個時候你做的改進原有項目就會擁有了。
· Watch
這個也好理解就是觀察,如果你 Watch 了某個項目,那么以后只要這個項目有任何更新,你都會第一時間收到關于這個項目的通知提醒。
· Gist
有些時候你沒有項目可以開源,只是單純的想分享一些代碼片段,那這個時候 Gist 就派上用場了!
6. 創建自己的項目
點擊頂部導航欄的 + 可以快速創建一個項目,如下圖:
創建一個項目需要填寫如上的幾部分:項目名、項目描述與簡單的介紹,你不付費沒法選擇私有的,所以接著只能選擇 public 的,之后勾選「Initialize this repository with a README」,這樣你就擁有了你的第一個 GitHub 項目:
可以看到這個項目只包含了一個 README.md 文件,但是它已經是一個完整的 Git 倉庫了,你可以通過對它進行一些操作,如watch、star、fork,還可以 clone 或者下載下來。
這里提一下 README.md ,GitHub 上所有關于項目的詳細介紹以及 Wiki 都是基于 Markdown 的,甚至之后在 GitHub 上搭建博客,寫博客也是如此,所以如果還不懂 Markdown 語法的,建議先去學習下。
7. 總結
相信看完以上文章你已經基本算是了解 GitHub 的基本概念并且正式加入 GitHub 這個大家庭了,之后會有更深入的文章介紹 Git、介紹對項目的常用操作、介紹如何給開源項目提交代碼、介紹如何協同合作甚至怎么搭建博客等,敬請期待吧!
總結
以上是生活随笔為你收集整理的从0开始学习GitHub系列之「认识并加入GitHub」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从0开始学习GitHub系列之「向Git
- 下一篇: 从0开始学习GitHub系列之「Git