什么是Github?Github和Git的關(guān)系是什么
時(shí)間:2019-07-27 00:00:00 | 來源:
初識(shí)Github
GitHub 是程序員的必備技能
1.什么是Github?
確切的說 GitHub 是一家公司,位于舊金山,由 Chris Wanstrath, PJ Hyett 與
Tom Preston-Werner 三位開發(fā)者在2008年4月創(chuàng)辦。這是它的 Logo:
2008年4月10日,GitHub正式成立,地址:How people build software · GitHub ,
主要提供基于git的版本托管服務(wù)。一經(jīng)上線,它的發(fā)展速度驚為天人,截止目前,GitHub 已經(jīng)發(fā)展成全球最大的開(同)源(性)社區(qū)。
2.Github和Git的關(guān)系?
首先需要知道的一點(diǎn)是:
Git 是一款免費(fèi)、開源的分布式版本控制系統(tǒng),他是著名的 Linux 發(fā)明者 Linus Torvalds 開發(fā)的。說到版本控制系統(tǒng),估計(jì)很多人都用過 SVN ,只不過 Git 是新時(shí)代的產(chǎn)物,如果你還在用 SVN 來管理你的代碼,那就真的有些落伍了。不管是學(xué)習(xí) GitHub ,還是以后想從事編程行業(yè),Git 都可以算是必備技能了,所以從現(xiàn)在開始建議你先去學(xué)習(xí)熟悉下 Git 。
而 GitHub 上面說了,主要提供基于 git 的版本托管服務(wù)。也就是說現(xiàn)在 GitHub 上托管的所有項(xiàng)目代碼都是基于 Git 來進(jìn)行版本控制的,所以 Git 只是 GitHub 上用來管理項(xiàng)目的一個(gè)工具而已,GitHub 的功能可遠(yuǎn)不止于此!
3.GitHub 的影響力
上面我說了 GitHub 現(xiàn)在毫無疑問基本是全球最大的開源社區(qū)了,這樣說你們可能認(rèn)為未免有點(diǎn)浮夸,且聽我一一舉證:
全球頂級(jí)科技公司紛紛加入 GitHub ,并貢獻(xiàn)他們自己的項(xiàng)目代碼
Google: https://github.com/google
Facebook: https://github.com/facebook
Twitter:https://github.com/twitter
Square:https://github.com/square
…
全球頂級(jí)開源項(xiàng)目都優(yōu)先選擇在 GitHub 上開源
CoffeeScript:https://github.com/jashkenas/coffeescript
…
全球頂級(jí)編程大牛加入GitHub
Linux 發(fā)明者 Linus Torvalds:https://github.com/torvalds
Rails 創(chuàng)始人 DHH:https://github.com/dhh
被稱為「Android之神」的 JakeWharton:https://github.com/JakeWharton , 你們用的很多開源庫如 ButterKnife、OkHttp、 Retrofit、 Picasso、ViewPagerIndicator 等都是出自他之手!
4.GitHub 有什么用
學(xué)習(xí)優(yōu)秀的開源項(xiàng)目
開源社區(qū)一直有一句流行的話叫「不要重復(fù)發(fā)明輪子」,某種意義上正是因?yàn)殚_源社區(qū)的貢獻(xiàn),我們的軟件開發(fā)才能變得越來越容易,越來越快速。試想你在做項(xiàng)目時(shí),如果每一模塊都要自己去寫,如網(wǎng)絡(luò)庫、圖片加載庫、ORM庫等等,自己寫的好不好是一回事,時(shí)間與資源是很大的成本。對(duì)于大公司可能會(huì)有人力與資源去發(fā)明一套自己的輪子,但是對(duì)于大部分互聯(lián)網(wǎng)創(chuàng)業(yè)公司來說時(shí)間就是一切。而且你在使用開源項(xiàng)目的過程也可以學(xué)習(xí)他們優(yōu)秀的設(shè)計(jì)思想、實(shí)現(xiàn)方式,這是最好的學(xué)習(xí)資料,也是一份提升自己能力的絕佳方式!
多人協(xié)作
如果你想發(fā)起一個(gè)項(xiàng)目,比如翻譯一份不錯(cuò)的英文文檔,覺得一個(gè)人的精力不夠,所以你需要更多的人參與進(jìn)來,這時(shí)候 GitHub 是你的最佳選擇,感興趣的人可以參與進(jìn)來,利用業(yè)余時(shí)間對(duì)這個(gè)項(xiàng)目做貢獻(xiàn),然后可以互相審核、合并,簡直不要太棒!
搭建博客、個(gè)人網(wǎng)站或者公司官網(wǎng)
這個(gè)就不用多說了,現(xiàn)在越來越多的博客都是基于 GitHub Pages 來搭建的了,你可以隨心所欲的定制自己的樣式,可以給你博客買個(gè)逼格高的域名,再也不用忍受各大博客網(wǎng)站的約束與各式各樣的廣告了!
寫作
如果你喜歡寫作,而且基于 Markdown, 并準(zhǔn)備出版書籍,那么推薦你用 Gitbook ,技術(shù)寫作人的最愛!
個(gè)人簡歷
如果你有一個(gè)活躍的 GitHub 賬號(hào),上面有自己不錯(cuò)的開源項(xiàng)目,還經(jīng)常給別的開源項(xiàng)目提問題,push 代碼,那么你找工作將是一個(gè)非常大的優(yōu)勢,現(xiàn)在程序員的招聘很多公司都很看中你 GitHub 賬號(hào),某種意義上 GitHub 就可以算是你的簡歷了。而且不僅國內(nèi),很多國外的科技公司都會(huì)通過 GitHub 來尋找優(yōu)秀的人才,比如我甚至通過 GitHub 收到過 Facebook 的邀請郵件!
其他
當(dāng)然 GitHub 能做的還遠(yuǎn)不止這些,我見過很多在 GitHub 搞的一些有意思的項(xiàng)目,有找男朋友的,甚至還有利用 GitHub 的 commit 喪心病狂的秀恩愛的,沒錯(cuò),那個(gè)喪心病狂的人就是我,如果你前段日子關(guān)注了我的 GitHub ,那么能看到這么一個(gè)壯觀的景象:
加入Github
1.注冊 GitHub
先去 GitHub 官網(wǎng)「How people build software · GitHub」注冊「Sign Up」個(gè)賬號(hào),注冊頁面如下:
這個(gè)應(yīng)該沒啥說的,需要填用戶名、郵箱、密碼,值得一提的用戶名請不要那么隨便,最好取的這個(gè)名字就是你以后常用的用戶名了,也強(qiáng)烈建議你各大社交賬號(hào)都用一樣的用戶名,這樣識(shí)別度較高,比如我的博客域名、GitHub、知乎等其他社交賬號(hào) ID 都是 stormzhang ,微博是因?yàn)楸徽加昧?,無奈換了個(gè)id,而且這個(gè)用戶名以后在 GitHub 搭建博客的時(shí)候默認(rèn)給你生成的博客地址就是 http://username.github.io ,所以給自己取個(gè)好點(diǎn)的用戶名吧。
填好用戶名、郵箱、密碼緊接著到這一步:
導(dǎo)航欄,從左到右依次是 GitHub 主頁按鈕、搜索框、PR、Issues、Gist(這些概念后面會(huì)講的)、消息提醒、創(chuàng)建項(xiàng)目按鈕、我的賬號(hào)相關(guān)。
討論區(qū),這部分你可以理解成微博,就是你關(guān)注的一些人的活動(dòng)會(huì)出現(xiàn)在這里,比如如果你們關(guān)注我了,那么以后我 star、fork 了某些項(xiàng)目就會(huì)出現(xiàn)在你的時(shí)間線里。 ^_^ 因?yàn)槭切聞?chuàng)建的Github,所以空曠了些
我的項(xiàng)目,這部分就不用說了,如果你創(chuàng)建了項(xiàng)目,就里就可以快捷訪問。
3.設(shè)置你的Github
如果你也是新注冊的 GitHub 賬號(hào),是不是覺得很簡陋?雖然我們還沒有多少自己的項(xiàng)目,但是第一步起碼要先完善自己的信息,點(diǎn)擊如下的 Settings 菜單:
到設(shè)置頁面來設(shè)置一些基本信息:
4. GitHub 基本概念
上面認(rèn)識(shí)了 GitHub 的基本面貌之后,你需要了解一些 GitHub 的基本概念,這些概念是你經(jīng)常會(huì)接觸并遇到的。
Repository
倉庫的意思,即你的項(xiàng)目,你想在 GitHub 上開源一個(gè)項(xiàng)目,那就必須要新建一個(gè) Repository ,如果你開源的項(xiàng)目多了,你就擁有了多個(gè) Repositories 。
Issue
問題的意思,舉個(gè)例子,就是你開源了一個(gè)項(xiàng)目,別人發(fā)現(xiàn)你的項(xiàng)目中有bug,或者哪些地方做的不夠好,他就可以給你提個(gè) Issue ,即問題,提的問題 多了,也就是 Issues ,然后你看到了這些問題就可以去逐個(gè)修復(fù),修復(fù)ok了就可以一個(gè)個(gè)的 Close 掉。
Star
這個(gè)好理解,就是給項(xiàng)目點(diǎn)贊,但是在 GitHub 上的點(diǎn)贊遠(yuǎn)比微博、知乎點(diǎn)贊難的多,如果你有一個(gè)項(xiàng)目獲得100個(gè)star都算很不容易了!
Fork
這個(gè)不好翻譯,如果實(shí)在要翻譯我把他翻譯成分叉,什么意思呢?你開源了一個(gè)項(xiàng)目,別人想在你這個(gè)項(xiàng)目的基礎(chǔ)上做些改進(jìn),然后應(yīng)用到自己的項(xiàng)目 中,這個(gè)時(shí)候他就可以 Fork 你的項(xiàng)目,這個(gè)時(shí)候他的 GitHub 主頁上就多了一個(gè)項(xiàng)目,只不過這個(gè)項(xiàng)目是基于你的項(xiàng)目基礎(chǔ)(本質(zhì)上是在原有項(xiàng)目的基 礎(chǔ)上 新建了一個(gè)分支,分支的概念后面會(huì)在講解Git的時(shí)候說到),他就可以隨心所欲的去改進(jìn),但是絲毫不會(huì)影響原有項(xiàng)目的代碼與結(jié)構(gòu)。
Pull Request
發(fā)起請求,這個(gè)其實(shí)是基于 Fork 的,還是上面那個(gè)例子,如果別人在你基礎(chǔ)上做了改進(jìn),后來覺得改進(jìn)的很不錯(cuò),應(yīng)該要把這些改進(jìn)讓更多的人收益, 于是就想把自己的改進(jìn)合并到原有項(xiàng)目里,這個(gè)時(shí)候他就可以發(fā)起一個(gè) Pull Request(簡稱PR) ,原有項(xiàng)目創(chuàng)建人就可以收到這個(gè)請求,這個(gè)時(shí)候他會(huì) 仔細(xì)review你的代碼,并且測試覺得OK了,就會(huì)接受你的PR,這個(gè)時(shí)候你做的改進(jìn)原有項(xiàng)目就會(huì)擁有了。
Watch
這個(gè)也好理解就是觀察,如果你 Watch 了某個(gè)項(xiàng)目,那么以后只要這個(gè)項(xiàng)目有任何更新,你都會(huì)第一時(shí)間收到關(guān)于這個(gè)項(xiàng)目的通知提醒。
Gist
有些時(shí)候你沒有項(xiàng)目可以開源,只是單純的想分享一些代碼片段,那這個(gè)時(shí)候 Gist 就派上用場了!
參考自 簡書stormzhang大佬 鏈接:http://www.jianshu.com/p/d9f9bba4da0f
網(wǎng)站優(yōu)化公司:網(wǎng)站優(yōu)化的作用
如何實(shí)現(xiàn)SEO關(guān)鍵詞排名提升成為了企業(yè)亟待解決的問題
提升網(wǎng)站快速排名的SEO策略,讓你的網(wǎng)站名列前茅
打造高效SEO網(wǎng)站系統(tǒng),提升您的在線業(yè)務(wù)