回答題號為:23567
2.舉例說明集中式與分布式版本控制的區(qū)別是什么梅尤?
解釋一:
集中式分布系統(tǒng):需要依靠互聯(lián)網(wǎng)岩调。
操作:一臺(tái)中央存儲(chǔ)的電腦巷燥,其他人從中央存儲(chǔ)電腦獲取資料,修改号枕,再上傳到中央存儲(chǔ)的電腦上缰揪。
缺點(diǎn):傳輸速度慢,需要網(wǎng)絡(luò)葱淳,中央電腦壞掉影響辦事效率钝腺。
分布式版本控制系統(tǒng):對比集中式分布系統(tǒng)。
優(yōu)點(diǎn):工作的時(shí)候不需要互聯(lián)網(wǎng)赞厕。
介紹:每臺(tái)電腦都相當(dāng)于一個(gè)“中央存儲(chǔ)電腦”艳狐,每個(gè)人都在各自電腦上修改,修改完成后推送到對方的電腦上皿桑,為了方便推送修改毫目,分布式控制系統(tǒng)設(shè)有一臺(tái)中央電腦相當(dāng)于“中央服務(wù)器”,方便推送诲侮。
缺點(diǎn):文中沒說镀虐,自己總結(jié)是,如果負(fù)責(zé)推送的“中央服務(wù)器”壞掉沟绪,就不方便推送修改了刮便。
解釋二:
集中式:工作時(shí),與其他協(xié)同工作的人交換的是整個(gè)文件近零,而且存取文件都必須通過中央服務(wù)器诺核,導(dǎo)致過于依賴中央服務(wù)器和網(wǎng)絡(luò),且速度慢久信。
分布式:工作時(shí)與其他協(xié)同工作的人交換的只是文件的改動(dòng)信息,存取都可在本地進(jìn)行漓摩,只有遠(yuǎn)程推送時(shí)需要連接網(wǎng)絡(luò)裙士,速度快,方便管毙,不依賴網(wǎng)絡(luò)腿椎,不依賴中央服務(wù)器保存桌硫,安全系數(shù)更高,因?yàn)閭溆玫拇鏅n更多(每一個(gè)協(xié)同工作對象的本地上都有)啃炸。
3.用淺顯易懂的語言說明“工作區(qū)”铆隘、“暫存區(qū)”與“版本區(qū)”的含義與互相關(guān)系是什么?
解釋一:
簡而言之南用,工作區(qū)是工作操作過程正在進(jìn)行的區(qū)域膀钠;暫存區(qū)是工作告一段落,暫時(shí)保存等待提交的區(qū)域裹虫,防止操作失誤而丟失肿嘲;版本區(qū)就是工作完成,提交正式保存的區(qū)域筑公,保證提交文件的安全雳窟。
拿做菜作比,現(xiàn)在我們的目的是為客人上一盤菜匣屡。
工作區(qū)就是我們洗菜切菜炒菜的這個(gè)做菜的過程所在的區(qū)域封救。
暫存區(qū)就是我們炒好了菜裝盤擺盤,等待上菜的區(qū)域捣作。
版本區(qū)就是我們正式端上菜品呈現(xiàn)給客人的區(qū)域兴泥。
解釋二:
首先來看張圖
從上圖可以看出”三區(qū)”的邏輯順序是:
版本區(qū) => 工作區(qū) => 暫存區(qū) => 版本區(qū)
1.版本區(qū)(git directory)
我們所有提交的內(nèi)容都會(huì)到版本區(qū),版本區(qū)是安全的.
2.工作區(qū)(working directory)
只要我們對git目錄下的文件有修改,改動(dòng)的內(nèi)容就會(huì)到工作區(qū),工作區(qū)是不安全的,內(nèi)容會(huì)丟失.
3.暫存區(qū)(staging area)
顧名思義,暫存區(qū)就是把修改的內(nèi)容暫時(shí)存放起來,防止丟失,所以它也是安全的.
所以上面的”三區(qū)”邏輯順序可以進(jìn)一步表示為
5.如何運(yùn)用分支管理實(shí)現(xiàn)多人協(xié)作?
解釋一:
簡而言之就是將主分支作為正式提交平臺(tái)虾宇,平時(shí)的工作協(xié)同的進(jìn)程在分分支上進(jìn)行搓彻,達(dá)成共識(shí)之后再提交到主分支。
而各自的工作是在分分支上再開各自的小分支嘱朽,不同意見或不同分工提交到分分支上進(jìn)行匯總和磨合旭贬。
拿做菜作比。主分支上的內(nèi)容是最后呈現(xiàn)出來的菜品搪泳,給顧客或老板看稀轨,在這里我命名為菜品呈現(xiàn)分支。
分分支上的內(nèi)容是掌勺將配菜和配料調(diào)和成一道菜品岸军,我命名為菜品掌勺分支奋刽。在Git的使用中這個(gè)“掌勺”是多人,調(diào)和的過程就是不同任務(wù)或不同意見匯總和磨合的過程艰赞。
分分支上的各自小分支內(nèi)容指備菜的分工佣谐,有的人洗菜,有的人切菜方妖,有的人準(zhǔn)備調(diào)料狭魂,他們所采在的分支就是洗菜分支,切菜分支,調(diào)料分支雌澄,都是由菜品掌勺分支分出來的斋泄。
解釋二:
首先我們來說說什么是分支,舉一個(gè)例子:
從A到B,只有一條主干道,那么這個(gè)主干道就相當(dāng)于我們的master主分支.一開始我們都在master分支上工作.
但是,每當(dāng)早晚高峰的時(shí)候主干道完全被堵死,怎么辦呢?我們在A地和B地之間又增開了1、2镐牺、3號公路.這的1炫掐、2、3號公路就相當(dāng)于我們新創(chuàng)建的分支,他們互不影響,都是從A到B.
回到我們的git上來,同理,如果有很多人都在master主干道上工作,肯定會(huì)出現(xiàn)堵死的情況.那么我們最好的解決方案就是一人一個(gè)分支.也就是說我給每輛車開一個(gè)賽道,這樣的話大家覺得還會(huì)出現(xiàn)堵車的情況嗎?當(dāng)然不會(huì),在現(xiàn)實(shí)社會(huì)中我們無法做到給每輛車子開一個(gè)賽道,但是在程序的世界里我們是上帝,我們完全可以做到這一點(diǎn).
那么問題來了,上帝是怎么給每輛車子創(chuàng)建一個(gè)賽道的
$ git branch 你的賽道名
這樣我們就創(chuàng)建出了第一個(gè)賽道.賽道是創(chuàng)建出來了,但是你得把車開到這個(gè)賽道上來啊,怎么開呢
$ git checkout 你創(chuàng)建的賽道名
現(xiàn)在你已經(jīng)把車開到了自己的賽道上.怎么,不確定?那我們就可以檢驗(yàn)一下,我們到底在哪個(gè)賽道上
$ git branch
這個(gè)命令會(huì)顯示出你所有的賽道,并且標(biāo)記出你目前所在的賽道.當(dāng)然我們不單單是可以切換自己創(chuàng)建的賽道,只要有賽道你就可以隨意的切換.
目前為止你已經(jīng)可以隨意的創(chuàng)建賽道,切換賽道了.
那么到了最后一個(gè)問題,多人合作完成一項(xiàng)任務(wù),每個(gè)人都在自己分支上,怎么把這些分支合到一起呢
首先切換到你想要合并到的分支上
$ git merge 你要合并的分支名稱
這樣你就把所有人的分支內(nèi)容合并到一個(gè)總的分支上了.
6.Git和自己的關(guān)系可能是什么睬涧,至少提出5種募胃?
1.文件管理系統(tǒng)
2.知識(shí)管理系統(tǒng)
3.團(tuán)隊(duì)協(xié)作工具
4.遠(yuǎn)程資源庫
5.項(xiàng)目資料及進(jìn)程管理系統(tǒng)
7.整理一份給小白學(xué)習(xí)的 Git 教程大綱。
圖片發(fā)自簡書App