一分鐘了解GIT
Git是什么?
Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一)。
Git有什么特點?簡單來說就是:高端大氣上檔次!
那什么是版本控制系統(tǒng)?
如果你用Microsoft Word寫過長篇大論,那你一定有這樣的經(jīng)歷:
想刪除一個段落,又怕將來想恢復(fù)找不回來怎么辦?有辦法,先把當(dāng)前文件“另存為……”一個新的Word文件,再接著改,改到一定程度,再“另存為……”一個新文件,這樣一直改下去,最后你的Word文檔變成了這樣:
過了一周,你想找回被刪除的文字,但是已經(jīng)記不清刪除前保存在哪個文件里了,只好一個一個文件去找,真麻煩。
看著一堆亂七八糟的文件,想保留最新的一個,然后把其他的刪掉,又怕哪天會用上,還不敢刪,真郁悶。
更要命的是,有些部分需要你的財務(wù)同事幫助填寫,于是你把文件Copy到U盤里給她(也可能通過Email發(fā)送一份給她),然后,你繼續(xù)修改Word文件。一天后,同事再把Word文件傳給你,此時,你必須想想,發(fā)給她之后到你收到她的文件期間,你作了哪些改動,得把你的改動和她的部分合并,真困難。
于是你想,如果有一個軟件,不但能自動幫我記錄每次文件的改動,還可以讓同事協(xié)作編輯,這樣就不用自己管理一堆類似的文件了,也不需要把文件傳來傳去。如果想查看某次改動,只需要在軟件里瞄一眼就可以,豈不是很方便?
這個軟件用起來就應(yīng)該像這個樣子,能記錄每次文件的改動:
版本 | 文件名 | 用戶 | 說明 | 日期 |
1 | service.doc | 張三 | 刪除了軟件服務(wù)條款5 | 7/12 10:38 |
2 | service.doc | 張三 | 增加了License人數(shù)限制 | 7/12 18:09 |
3 | service.doc | 李四 | 財務(wù)部門調(diào)整了合同金額 | 7/13 9:51 |
4 | service.doc | 張三 | 延長了免費升級周期 | 7/14 15:17 |
這樣,你就結(jié)束了手動管理多個“版本”的史前時代,進入到版本控制的20世紀(jì)。
Git的特點:
分布式相比于集中式的最大區(qū)別在于開發(fā)者可以提交到本地,每個開發(fā)者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。
下圖是經(jīng)典的git開發(fā)過程。
Git的功能特性:
從一般開發(fā)者的角度來看,git有以下功能:
1、從服務(wù)器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
2、在自己的機器上根據(jù)不同的開發(fā)目的,創(chuàng)建分支,修改代碼。
3、在單機上自己創(chuàng)建的分支上提交代碼。
4、在單機上合并分支。
5、把服務(wù)器上最新版的代碼fetch下來,然后跟自己的主分支合并。
6、生成補丁(patch),把補丁發(fā)送給主開發(fā)者。
7、看主開發(fā)者的反饋,如果主開發(fā)者發(fā)現(xiàn)兩個一般開發(fā)者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然后再由其中一個人提交。如果主開發(fā)者可以自己解決,或者沒有沖突,就通過。
8、一般開發(fā)者之間解決沖突的方法,開發(fā)者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開發(fā)者提交補丁。
從主開發(fā)者的角度(假設(shè)主開發(fā)者不用開發(fā)代碼)看,git有以下功能:
1、查看郵件或者通過其它方式查看一般開發(fā)者的提交狀態(tài)。
2、打上補丁,解決沖突(可以自己解決,也可以要求開發(fā)者之間解決以后再重新提交,如果是開源項目,還要決定哪些補丁有用,哪些不用)。
3、向公共服務(wù)器提交結(jié)果,然后通知所有開發(fā)人員。
優(yōu)點:
適合分布式開發(fā),強調(diào)個體。
公共服務(wù)器壓力和數(shù)據(jù)量都不會太大。
速度快、靈活。
任意兩個開發(fā)者之間可以很容易的解決沖突。
離線工作。
缺點:
資料少(起碼中文資料很少)。
學(xué)習(xí)周期相對而言比較長。
不符合常規(guī)思維。
代碼保密性差,一旦開發(fā)者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
好啦!今天的分享到這里就結(jié)束了,希望大家持續(xù)關(guān)注馬哥教育官網(wǎng),每天都會有大量優(yōu)質(zhì)內(nèi)容與大家分享!
聲明:文章轉(zhuǎn)載于網(wǎng)絡(luò),版權(quán)歸原作者所有!