我們在日常工作種是否經常出現這樣一個場景?小團隊為了更好協(xié)作會建立一個qq群(或者微信群)益楼,同學A寫好一部分代碼將文件命名為code_A猾漫,打包后發(fā)到群里;再由同學B更改后命名為code_B感凤,再重新發(fā)到群里悯周;其他人再接著下載修改,轉發(fā)……
我們是否思考過這樣一種工作模式有些落后陪竿?我們盡可能詳細地分析一下經歷幾個過程能得到一個新的版本禽翼。
- A打包文件
- A發(fā)出文件
- B打開QQ群
- B下載文件
- B解壓文件
- B修改代碼
- B打包文件
- B發(fā)出文件
我們在做這些工作的時候可能沒有進行過多的思考,很自然而然地想到這種簡單的團隊協(xié)作方式族跛∪虻玻可能你說你參與這種團隊協(xié)作的機會比較少,一年遇不上那么幾次礁哄。但我還是相信长酗,你在本機電腦上時常有重命名一個文件夾作為副本的舉動。以上我提到的這些都涉及到一個名詞桐绒,稱之為“版本控制”夺脾。
版本控制的歷史
CVS
上個世紀的大佬們和你一樣忍受不了這些重復且毫無意義的工作,希望能夠有一個簡單可行的協(xié)作方案茉继。第一個被大規(guī)模使用的版本控制工具——CVS(Concurrent Versions System)咧叭,也就應運而生。它誕生于1985年烁竭,由荷蘭阿姆斯特丹VU大學的Dick Grune教授設計實現菲茬。Dick Grune教授和兩個學生共同開發(fā)一個項目,由于三人工作時間無法協(xié)調,急需一個記錄和協(xié)同開發(fā)的軟件婉弹。于是Dick Grune教授通過腳本語言對RCS(單文件版本管理工具)進行了封裝修改睬魂,設計了CVS。讓余哥不禁感嘆镀赌,果然大佬都是缺什么造什么汉买。關于這段歷史,大佬曾在網站上留下這樣的話:
“在1985年的一個糟糕的秋日里佩脊,我在校汽車站等車回家蛙粘,腦海里一直糾結著一件事一如何處理RCS文件、用戶文件(工作區(qū))和Entries 文件的復雜關系威彰,有的文件可能會缺失出牧、沖突、刪除歇盼,等等舔痕。我的頭有些暈了,于是決定畫一個大表豹缀,將復雜的關聯畫在其中伯复,看看出來的結果是什么樣的.....”
CVS的成功引發(fā)了版本控制系統(tǒng)的爆發(fā),各種版本控制系統(tǒng)相繼被開發(fā)出來邢笙,其中比較典型的系統(tǒng)就是SVN啸如。
SVN
SVN是由CollabNet公司資助開發(fā)的。SVN的本質和CVS相同氮惯,都屬于集中式版本控制工具叮雳,又十分具有開創(chuàng)性地增加了一些實用地功能,比如說輕量級拷貝妇汗、保留原始拷貝帘不、全局版本號。因為這些新特性杨箭,SVN在眾多版本控制工具中脫穎而出寞焙,成為新寵。
Git
在歷史的另一面互婿,有這樣一位大佬捣郊,因為反對集中式版本系統(tǒng)(服務器+客戶端),長達十幾年以來堅持手動管理自己的代碼文件擒悬。小余哥不禁想天才般的人物都有自己的偏執(zhí)模她,這也許也是他們成功的一部分因素稻艰。我先說他是git的創(chuàng)始人懂牧,你可能不熟悉。我再說他是Linux內核的創(chuàng)始人——Linus,偉大的先驅者僧凤,那個終年在開源社區(qū)活躍的男人畜侦。那你肯定就聽說過了。
git躯保,即是他的第二個偉大作品旋膳。堅持分布式版本管理系統(tǒng)的他,引入商業(yè)版本控制系統(tǒng)BitKeeper進Linux社區(qū)后途事,由于其中一位社區(qū)成員企圖對BitKeeper進行反向工程验懊,撕破了兩方構建的合作。Linus堅持自己獨立開發(fā)了一套完整的分布式版本管理系統(tǒng)——git尸变。
分布式版本管理系統(tǒng)對于個人開發(fā)者而言有著莫大的吸引力义图,開發(fā)者通過克隆操作可以在本地建立一個完整的版本庫。查看提交日志召烂、提交碱工、創(chuàng)建里程碑、分支奏夫、回退等操作都可以直接在本地完成怕篷,不需要網絡。再加上協(xié)同工作中的版本庫推送酗昼、拉回以及補丁文件傳送等功能廊谓,讓開源項目呈爆發(fā)式增長。
Git快速入門教程
介紹完了版本控制的歷史麻削,我們回到之前的話題中來蹂析。如果我們使用git進行協(xié)作需要哪些步驟呢?首先使用Git建立本地版本庫碟婆,再連接上全球最大的同性交友網站GitHub或者那個和*同名的網站gitee的話电抚,那多人協(xié)作就成了輕松的事情。
下面以GitHub為例子介紹下如何快速建立一個簡單多人協(xié)作倉庫
git快速入門教程
相信你已經可以完成本地倉庫和遠程倉庫的連接了竖共。通過兩三條的指令蝙叛,就可以多人進行協(xié)作了。我這里提供兩本實用的git電子書籍給大家后續(xù)學習公给。
書籍分享
第一本是《Pro Git》
這本書十分淺顯易懂借帘,涵蓋了git的基本操作,可以快速入門淌铐。
第二本是《Git權威指南》
這本書內容相對而言比較廣泛肺然,適合git進階。
這里提供兩本書的pdf鏈接腿准,僅供學習交流际起,禁止商業(yè)傳播拾碌。
關注公眾號 尼羅余
發(fā)送以下消息獲取資源(建議直接復制)
2021001|《Pro Git》 獲取第一本書的下載地址
2021002|《Git權威指南》 獲取第二本書的下載地址