Git學習筆記(一)
Git學習筆記 第一部分
——初識Git
想必每個有興趣來學習git的童鞋一定是早就對其大名有過耳聞啦,那麼這個經常被計算機大神、編程大老、程序員工程師大牛們掛在嘴邊的git到底是個怎樣的神聖所在呢?在我們一起學習git之前,我們不妨先來了解一下他的前世今生,至少從他是幹什麼的說起。
Git是目前世界上最最先進的分散式版本控制系統,毫不誇張,沒有之一。
那麼什麼是分散式,什麼又是版本控制呢?
先說說版本控制吧,肝過論文的你一定有過這樣的體會吧,先寫好一個最初版本,然後再一次一次的加以修改,而且每次都要修改不同的部分,多慮的你有想要保留每一次修改前的原版,於是你的文件夾里就有了大量的副本,副本1,副本2……直到哪天你又突然想要找回一個某天前的版本,於是你開始打開每個文件查看,到底哪個副本才是要找的呢?是不是很麻煩!
於是版本控制系統就誕生啦,他負責記錄你的每次更改,包括修改的時間,修改的內容等等,更神奇的是,如果需要,你可以隨時跳回之前的某一次修改,讓自己的文件瞬間變回以前的一個版本,在各個版本之間靈活穿梭,更可怕的是,如果你對某個修改猶豫不決,git還允許你建立一個分支,在保留以前的一個版本的基礎上另外開出一條新路,肆意修改,覺得合適呢就把他同之前的主幹合併,不合適就一鍵抹殺,從頭再來。
那麼,更神奇的來了。想必你也體會過多個人寫一篇論文的情況吧,張三修改了一部分發給你,李四修改了一部分發給你,你自己手上還有一份修改過的文章,該怎麼把三個人修改的弄到一起呢?大概只能……手動吧,不然你還能怎樣?於是git就前來替你管理這些不同人經手的不同版本了,清楚明了,還可以對不同的修改進行合併,具體的使用方法呢我們後邊會提到的。
那麼這就是版本控制系統的作用啦,接下來就說說分散式,分散式當然是和集中式對應的。以前的集中式系統就好比一本放在圖書館的書一樣,張三如果想修改書中的內容,就需要把書從圖書館借走,等他完成修改後歸還,這時李四才可以繼續借閱並進行修改了。放到互聯網上呢,就導致了聯網傳輸速度極慢,多人協作不夠方便等大量的問題,而分散式系統則不一樣,沒有一個好比圖書館一樣的「中心」,每個人手裡都有一本書,他們都可以對自己的書進行修改,之後只需要把他們的書互換,對修改的內容進行合併就可以啦,這樣就使得操作簡單,也可以不需聯網就能完成自己手頭的工作,並且在張三工作的時候李四是不要乾等著的,因為「書」不止一本,這也就提高了工作的效率。
當然啦,git還是為這個系統創建了一個遠程倉庫,更方便了不同版本之間的交流和共享,這個開源的遠程倉庫就是大名鼎鼎的GitHub啦,全球最大的男性交友平套平台。是時候祭出這張圖了。
到底是誰發明了Git?你一定聽說過他,Linus,對,就是創建Linux的那個。
Linux系統的壯大可以說是靠全世界的吃瓜群眾的共同努力的,Linus把Linux系統開源,讓所有感興趣的人給他提出修改意見,不負所期的,世界各地的志願者都把自己改寫的Linux代碼發給Linus,說出來你可能不信,剛開始的那麼幾年,Linus完全是靠自己手動將這無數份代碼合併的(好吧好吧你厲害!)。
其實當時是有一些版本控制系統的,但是免費的集中式版本系統呢,Linus覺得太慢太不方便,商用的付費系統呢,Linus覺得和自己Linux的開源精神不符合,還是不用。
終於,系統越做越大,手動是滿足不了了,Linus終於放下架子選擇使用了一個商業的版本控制系統BitKeeper,當然了,BitKeeper的東家出於對Li大神的尊重,讓Linux社區免費使用本公司的產品。
好景不長,Linux社區中名門聚集,不免有了綠林好漢的風格,其中有人開始嘗試破解BitKeeper的協議,不幸被BitKeeper公司發現,大怒,收回了Linux社區對該系統的免費使用權。本來Li大神是可以簡單代表本社區向BitKeeper公司道個歉的,但是不可能,這輩子都不可能道歉,所以歷史性的一刻出現了:Linus在家用了兩周時間自己用C語言寫了一個分散式版本控制系統出來,一個月後已經成熟使用,把整個Linux系統代碼都搬過來完美運行,沒錯,就是Git。此時我只想說,惹不起惹不起。牛X是怎麼定義的?你們自行理解一下。或許,這就是歷史機緣吧。
其實GitHub是可以完美展示代碼的,不論你是什麼格式的代碼,上傳到GitHub的遠程庫里都可以直接瀏覽,但是諸如mp3啊mp4啊wmv啥的,甚至是word文檔這種都會保存為二進位格式,在GitHub上是無法展示,不過……可以儲存啊,你說對不對?媽媽再也不用擔心我的硬碟了。悄悄告訴你,GitHub不限存儲空間,上傳下載速度夠快哦~
要不,關注一下唄~
TAG:全球大搜羅 |