要了解Github,咱們首先要知道Git,Git是管理代碼的工具,寫代碼不是件輕鬆的事兒,一我的寫的時候已經不輕鬆了,一羣人寫就更不輕鬆了,但這世界上不少事都是怎麼不輕鬆怎麼來的,大部分人都會和別人一塊兒寫代碼,問題在於,這麼多人寫一個東西,你今天寫一點,我明天寫一點,而後發現你寫錯了,又影響到了我前天寫的,最後彙總的時候怎麼查找錯誤?又在何時彙總?這些問題太多了。爲了讓寫代碼這件事兒美好一點,咱們有了一種名叫代碼管理的東西,Git正是其中之一,我使用過的還有SVN,可是今天咱們只講Git。程序員
Git的核心思想是『分佈式』,咱們在服務器上面有一個『主倉庫』,這裏放的是拿得出檯面的代碼,咱們也能夠在本身的電腦上建立分支,這些分支由『主倉庫』克隆而來,而後咱們就能夠愉快的在本身的電腦上寫代碼了,寫完代碼能夠同步在本身電腦的分支裏面,當你以爲本身的代碼拿得出檯面,咱們能夠申請把本身的代碼更新到『主倉庫』裏面,一旦經過這樣的審覈,咱們就對『主倉庫』作了某種貢獻,世界各地的傑出程序員不斷的爲一個項目的『主倉庫』作貢獻,讓這個項目變得愈來愈完善。服務器
Github是運用Git思想來工做的一個商業網站,全部開發者均可以在Github上面爲本身的項目建立一個『主倉庫』,好的項目就像狼羣中的小鮮肉同樣,大量的開發者會把這個主倉庫中的代碼克隆到本身的『分倉庫』去,用更性感的話來講,就是『Fork』。分佈式
Git的方式的確很優雅,但問題在於,會有人願意把本身辛辛苦苦的代碼拿出來公佈,而且讓人Fork麼?
會,不只會,並且不少,Github有超過140萬用戶,你可能會撇撇嘴說那個啥啥社交軟件都有2000萬用戶,區區140萬算個啥。但是這140萬用戶幾乎涵蓋了這個世界上最優秀的開發者,我相信,你那個有2000W用戶的社交軟件的工程師,確定也是用Github的。任何項目,在Github上面得到fork或star,都意味着其它工程師對這個項目的承認,這比100個QQ空間的贊更有價值。工具
爲何這些優秀的工程師會開源本身的項目?
由於開源是一種精神。網站
無數的軟件開發者苦心積慮保護本身的代碼不被破解,而仍是被聰明絕頂的腳本小子破解了,但破解無數軟件的腳本小子在接下來的破解中卻傻眼了,由於這是開源的,不用破解也就破解了破解。開發
閉源意味着封閉,而開源則意味着開放,封閉很難進步,開放纔會進步。開放讓人類的智慧有彙集的可能,人類的智慧彙集起來再也不是1+1=2,這是開源的力量。同步
閉源是一種排斥,而開源是包容,閉源是單打獨鬥,開源是同仇敵愾,閉源是敝帚自珍,開源是無私奉獻,閉源是小富即安,開源是世界大同,閉源是資本主義,開源是共產主義。it