国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

河套IT TALK 25:Git為什么能夠成功,而其他的失敗了?

共熵服務(wù)中心 ? 來(lái)源:未知 ? 2023-01-13 00:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ac7d3c42-9294-11ed-bfe3-dac502259ad0.png

關(guān)聯(lián)回顧

我們?yōu)槭裁匆芯块_(kāi)源?

開(kāi)源,是先進(jìn)生產(chǎn)模式對(duì)傳統(tǒng)生產(chǎn)模式的超越

開(kāi)源發(fā)展簡(jiǎn)史:從自由到開(kāi)源,從開(kāi)源到開(kāi)放

開(kāi)源的價(jià)值觀

全圖說(shuō)開(kāi)源軟件的發(fā)展歷史

2005年,Linus Torvalds開(kāi)發(fā)Git這個(gè)開(kāi)源的分布式代碼版本控制系統(tǒng)軟件的時(shí)候,他可能沒(méi)有意識(shí)到自己的開(kāi)發(fā)會(huì)一統(tǒng)江湖。2022年的一份年度開(kāi)發(fā)者調(diào)查問(wèn)卷中,Git在開(kāi)發(fā)者的使用率壓倒性地高達(dá)93.9%。那么Git是如何做到成功的呢?它到底有哪些特點(diǎn)是其他版本管理軟件沒(méi)有考慮到的呢?我們今天來(lái)談一下這個(gè)話(huà)題。

集中還是分布,這是基本理念的差異

Git之所以是被極客Linus Torvalds 開(kāi)發(fā)出來(lái)的,而不是被一個(gè)大公司開(kāi)發(fā)出來(lái)的,因?yàn)樗麄兊拈_(kāi)發(fā)模式有著根本理念的差別:集中式開(kāi)發(fā)和分布式開(kāi)發(fā)。

集中式開(kāi)發(fā):我一定要用你。你必須保證你的代碼是有用的。

分布式開(kāi)發(fā):我不Care你。你要說(shuō)服我你的代碼是有用的。

acb39fa8-9294-11ed-bfe3-dac502259ad0.png

集中式開(kāi)發(fā),不能容忍人力資源的浪費(fèi),人員之間的關(guān)系也相對(duì)固化的,層級(jí)關(guān)系也是相對(duì)嚴(yán)格的。代碼責(zé)任路徑也是金字塔式的。集中式開(kāi)發(fā),一般發(fā)生在已經(jīng)有固定的雇員的項(xiàng)目團(tuán)隊(duì)。這些雇員是簽了雇傭合同的,是要領(lǐng)薪水的,是要占用項(xiàng)目的人力成本的,所以,他們必須要為項(xiàng)目創(chuàng)造價(jià)值,必須要有績(jī)效考核,每位開(kāi)發(fā)者都不是混飯吃的,每位團(tuán)隊(duì)成員都有對(duì)應(yīng)的代碼責(zé)任田,每個(gè)人或者某幾個(gè)人為某幾個(gè)代碼文件或者文件目錄負(fù)責(zé)。

分布式開(kāi)發(fā),發(fā)生在開(kāi)源項(xiàng)目里,基本是根據(jù)興趣和利益牽引而誘發(fā)的非穩(wěn)態(tài)合作。分布式合作之前,團(tuán)隊(duì)各方人員大多并未相識(shí)相知。所以這種開(kāi)發(fā)構(gòu)建的前提就是項(xiàng)目創(chuàng)始人不認(rèn)識(shí)你,你要讓他(她)認(rèn)識(shí)你,你先主動(dòng)來(lái)找他(她),來(lái)證明你值得他(她)認(rèn)識(shí)和合作,如果你沒(méi)有說(shuō)服他(她),僅僅是他(她)的粉絲,那他(她)自然也沒(méi)有什么問(wèn)題,或者也能滿(mǎn)足其虛榮感:“你愿意拿我的代碼開(kāi)啟自嗨模式,我不Care。”這種非穩(wěn)態(tài)的合作關(guān)系,必然允許人力資源的浪費(fèi)(而且,這也是開(kāi)源項(xiàng)目的常態(tài)),也不太講究人員關(guān)系的固化,不存在所謂的雇傭關(guān)系。修改的代碼是否被別人接受由別人來(lái)決定。項(xiàng)目核心或者發(fā)起人自己來(lái)決定要去合并誰(shuí)的代碼,而這種信任也是動(dòng)態(tài)變化的。

寫(xiě)到這兒,我覺(jué)得這個(gè)和社交網(wǎng)絡(luò)(同樣是另外一種分布式網(wǎng)絡(luò))的微博分享有些類(lèi)似。Push在這里不那么重要,你可以分享發(fā)布微博(Push),但是沒(méi)有人關(guān)注你,沒(méi)有人給你小愛(ài)心,也就是自?shī)首詷?lè)而已。Pull貌似更重要,Pull的主動(dòng)權(quán)在對(duì)方手里,對(duì)方可以給你點(diǎn)贊,給你評(píng)論,甚至Follow你了,以后每次你發(fā)布什么都給你點(diǎn)贊,這樣你的分享才顯得更有意義。而轉(zhuǎn)發(fā),可以類(lèi)比為fork,如果在你的轉(zhuǎn)發(fā)上還有所修改,甚至有新的心得體會(huì)評(píng)論,這就相當(dāng)于在你的分支上修改。你覺(jué)得誰(shuí)的評(píng)論寫(xiě)的好,再轉(zhuǎn)發(fā)助推一次,又相當(dāng)于Pull,合入到了你的主分支。

ace438ca-9294-11ed-bfe3-dac502259ad0.png

由于這種基本理念和開(kāi)發(fā)模式的本質(zhì)差別,導(dǎo)致代碼管理的方式,會(huì)產(chǎn)生極大的不同。

針對(duì)代碼倉(cāng)的數(shù)據(jù)備份策略

集中式管理

acecde8a-9294-11ed-bfe3-dac502259ad0.png

集中式管理,往往對(duì)代碼是當(dāng)作寶貴資源或者價(jià)值產(chǎn)出看待的。因?yàn)椴豢赡茉试S團(tuán)隊(duì)的開(kāi)發(fā)者都擁有代碼。防賊防盜防程序員。項(xiàng)目時(shí)時(shí)刻刻防著這些開(kāi)發(fā)者,也許哪一天解除了雇傭關(guān)系,他們離職了,跳槽了,是絕對(duì)不能讓他們把代碼帶離公司的。這是公司的寶貴代碼財(cái)富,必須要進(jìn)行各種安全管理。代碼倉(cāng),每位開(kāi)發(fā)者,一般都是針對(duì)自己的代碼責(zé)任田范圍才有訪(fǎng)問(wèn)和修改的權(quán)限,而對(duì)其他的代碼不允許看,不能改。這種權(quán)限設(shè)置一定是嚴(yán)格的文件級(jí)的安全權(quán)限管理體系。所以,代碼倉(cāng),一定是集中化管理的。

集中管理,就一定會(huì)使用服務(wù)器-客戶(hù)端的維護(hù)模式。服務(wù)器存放完整的代碼倉(cāng)。而客戶(hù)端,僅存放開(kāi)發(fā)者需要關(guān)注的責(zé)任田代碼。服務(wù)器一定要做到足夠的安全防護(hù),還要考慮到容災(zāi)備份,因?yàn)橐坏┓?wù)器出現(xiàn)宕機(jī)或者擁塞,對(duì)整個(gè)團(tuán)隊(duì)的工作都會(huì)是全局的影響。而且,如果服務(wù)器的存儲(chǔ)考慮不周,真的出現(xiàn)了硬盤(pán)故障,導(dǎo)致代碼倉(cāng)代碼丟失,那簡(jiǎn)直就是晴天霹靂。

分布式管理

ad0b9c12-9294-11ed-bfe3-dac502259ad0.png

分布式管理則不同,因?yàn)槭情_(kāi)源項(xiàng)目,所以整個(gè)項(xiàng)目,凡是已經(jīng)在官方發(fā)布的項(xiàng)目代碼倉(cāng)的內(nèi)容,所有人可以隨便看,隨便改,完全可以下載到本地,也就是每個(gè)人都有一個(gè)項(xiàng)目官方發(fā)布的完整備份。

可能有些人會(huì)抱怨Git的項(xiàng)目官方發(fā)布的代碼倉(cāng)完整下載備份到本地會(huì)占用很大的存儲(chǔ)空間。這個(gè)其實(shí)不是開(kāi)源項(xiàng)目的發(fā)起者所關(guān)心的。如果想玩開(kāi)源項(xiàng)目,這點(diǎn)兒存儲(chǔ)空間的成本是非常低廉的。另外,這里還有一個(gè)非常重要的和集中式管理的數(shù)據(jù)備份策略問(wèn)題。分布式存儲(chǔ),會(huì)避免集中存儲(chǔ)引發(fā)的服務(wù)器宕機(jī)和硬盤(pán)損壞導(dǎo)致的重大數(shù)據(jù)丟失。分布式意味著每個(gè)開(kāi)發(fā)者的電腦上都是一個(gè)數(shù)據(jù)“備份”節(jié)點(diǎn)。每個(gè)開(kāi)發(fā)者本機(jī)不僅檢查文件的最新快照,還完整地映射了存儲(chǔ)庫(kù),包括它的完整歷史。哪一天,項(xiàng)目發(fā)起者的主倉(cāng)服務(wù)器發(fā)生了宕機(jī)或者硬盤(pán)損壞導(dǎo)致部分文件丟失,只需要向項(xiàng)目團(tuán)隊(duì)其他成員的電腦中讀取,就可以恢復(fù)對(duì)應(yīng)的代碼倉(cāng)。

數(shù)據(jù)存儲(chǔ)策略的不同

集中式管理的數(shù)據(jù)存儲(chǔ)

從概念上講,大多數(shù)代碼版本管理系統(tǒng)將信息存儲(chǔ)為基于文件的更改列表,比如:CVS、Subversion、Perforce、Bazaar 、SVN等。這些工具將它們存儲(chǔ)的信息視為一組文件以及隨時(shí)間對(duì)每個(gè)文件所做的更改進(jìn)行版本標(biāo)注(這通常被描述為基于增量的版本控制)。這種好處是對(duì)于每個(gè)版本的存儲(chǔ)都是增量存儲(chǔ)。當(dāng)然缺點(diǎn)也很明顯,就是很多存儲(chǔ)的版本都不是完整版本。不過(guò)反正數(shù)據(jù)都存在服務(wù)器,開(kāi)發(fā)者也不會(huì)看到完整的版本,所以這個(gè)缺點(diǎn)對(duì)于集中式管理而言,也還說(shuō)得過(guò)去。

ad1804c0-9294-11ed-bfe3-dac502259ad0.png

分布式管理的數(shù)據(jù)存儲(chǔ)

既然是分布式存儲(chǔ),每個(gè)開(kāi)發(fā)者都有項(xiàng)目的完整備份,就不能像集中式管理那樣來(lái)玩數(shù)據(jù)存儲(chǔ)了。于是Git引入了快照(Snapshots)的概念。

Git 認(rèn)為項(xiàng)目的數(shù)據(jù)更像是微型文件系統(tǒng)的一系列快照。每次提交或保存項(xiàng)目狀態(tài)時(shí),Git 基本上都會(huì)拍下當(dāng)時(shí)所有文件的樣子,并存儲(chǔ)對(duì)該快照的引用。為了提高效率,如果文件沒(méi)有更改,Git 不會(huì)再次存儲(chǔ)該文件,只是指向它已經(jīng)存儲(chǔ)的先前相同文件的鏈接。Git 將其數(shù)據(jù)視為快照流(stream of snapshots)。這是 Git 和幾乎所有其他版本管理系統(tǒng)之間的一個(gè)重要區(qū)別。這種做法,讓每個(gè)開(kāi)發(fā)者都可以在本地有一個(gè)完整的項(xiàng)目備份。以至于絕大多數(shù)開(kāi)發(fā)者的操作都是本地的,因此這也是Git速度為什么如此超凡脫俗,碾壓對(duì)手的根本原因。

ad26291a-9294-11ed-bfe3-dac502259ad0.png

代碼合并策略差異

集中式管理的代碼合并策略

集中式代碼管理的模式很簡(jiǎn)單,代碼保存在共享代碼倉(cāng)里。你可以checkout代碼進(jìn)行修改,這個(gè)時(shí)候,代碼倉(cāng)對(duì)應(yīng)的文件會(huì)打好標(biāo)記。對(duì)應(yīng)文件后面又有開(kāi)發(fā)者想要進(jìn)行修改,他(她)就要進(jìn)入一種排隊(duì)機(jī)制。要等待你合并完之后,他(她)再更新,再修改合并。也就是一種串行機(jī)制。所以如果一個(gè)代碼責(zé)任田由多個(gè)人一同維護(hù)的話(huà),他們之間就要做好某些事前約定,避免出現(xiàn)上述的尷尬情況,甚至出現(xiàn)不必要的代碼覆蓋。

ad2dd2f0-9294-11ed-bfe3-dac502259ad0.png

分布式管理的代碼合并策略

分布式管理則不同,由于開(kāi)源項(xiàng)目的每個(gè)開(kāi)發(fā)者都有一個(gè)項(xiàng)目官方發(fā)布的完整備份。這種完整備份,會(huì)給開(kāi)發(fā)者帶來(lái)幾個(gè)好處:

  • 開(kāi)發(fā)者會(huì)有機(jī)會(huì)了解到整個(gè)項(xiàng)目的全貌,或者至少可以了解到他(她)希望了解到一些關(guān)聯(lián)文件的源代碼到底是怎么寫(xiě)的。

  • 開(kāi)發(fā)者會(huì)在本地離線(xiàn)工作,不必?fù)?dān)心沒(méi)有連上互聯(lián)網(wǎng)無(wú)法編輯或者commit提交代碼。這些工作都可以在本地完成。如果你在飛機(jī)上、或者網(wǎng)絡(luò)不是很好的環(huán)境、或者你人在你根本不信任的公共WiFi環(huán)境下,你想干活,你根本不用連上網(wǎng),你就可以離線(xiàn)提交代碼,然后等你連上網(wǎng),Git會(huì)幫你做上傳(Git做的這些都是后臺(tái)默默地干的,你不必關(guān)心)。

  • 開(kāi)發(fā)者可以在本地建立多個(gè)分支,隨便怎么折騰,不用去擔(dān)心對(duì)線(xiàn)上的主分支有什么影響。直到開(kāi)發(fā)者有信心了,他(她)自己再?zèng)Q定是否同意這些分支被其他人看到或者被合并到的可能(push到自己的公共代碼倉(cāng))。

ad5653ec-9294-11ed-bfe3-dac502259ad0.png

說(shuō)到這兒,我不得不補(bǔ)充一下,為什么Linus Torvalds這么執(zhí)著地要求本地代碼倉(cāng)地完備性,以及要離線(xiàn)工作。在2007年Google Talk上,Torvalds揭秘了他的動(dòng)因。因?yàn)檫@個(gè)哥們特別看中他編碼環(huán)境的安全性。他正在寫(xiě)的代碼,是不希望給任何人看到的,為了保證安全性,這個(gè)服務(wù)器有3層防火墻,幾乎完全和互聯(lián)網(wǎng)隔絕。所以如果沒(méi)有本地完整備份,以及大部分操作都在本地完成的話(huà),他在那種幾乎離線(xiàn)的狀況下貌似也干不了什么。

ace438ca-9294-11ed-bfe3-dac502259ad0.png

當(dāng)然,如果你的修改想要被官方接受,合入到主分支下一個(gè)版本發(fā)布,你可能要說(shuō)服這個(gè)項(xiàng)目的集成管理員(Integration Manager),給他(她)寫(xiě)一封長(zhǎng)長(zhǎng)的翔實(shí)郵件(至少是有說(shuō)服力的),告訴他(她)你改的代碼有多牛逼,要求他(她)Pull你的修改。當(dāng)然,你也要做好心理準(zhǔn)備:集成管理員可能不鳥(niǎo)你:)因?yàn)樗ㄋ┯羞@個(gè)權(quán)力。

如果你足夠厲害(或者幸運(yùn)),反正被集成管理員看中了,他(她)會(huì)合入(merge)你的代碼到官方發(fā)布的代碼倉(cāng),并準(zhǔn)備下一次發(fā)布。我還是喜歡官方發(fā)布的代碼倉(cāng)Git的英文名字:Blessed Repository,給這個(gè)代碼倉(cāng)籠罩了一種神圣的光環(huán):)在很多小項(xiàng)目中,集成管理員往往就是開(kāi)源項(xiàng)目的發(fā)起人。每個(gè)項(xiàng)目發(fā)起人可能在合代碼的時(shí)候,心中也在默默地祈福:希望這個(gè)項(xiàng)目一定要成功哈:)

ad65225a-9294-11ed-bfe3-dac502259ad0.png

當(dāng)然,如果你的項(xiàng)目復(fù)雜度上升到一定程度,一個(gè)集成管理員已經(jīng)搞不定了,集成管理員就可以升級(jí)為司令員(Dictator)(編者注:我這里不能直接翻譯英文,但是大家也能從這些命名中看出Linus Torvalds這類(lèi)極客經(jīng)常喜歡干的事情,就是自嘲。),他(她)把項(xiàng)目代碼倉(cāng)進(jìn)行了拆分,比如按照某些子系統(tǒng)模式劃分子倉(cāng)。這里司令員(也就是之前的集成管理員)在之前的工作中,應(yīng)該能發(fā)現(xiàn)某幾個(gè)開(kāi)發(fā)者在某些領(lǐng)域有特長(zhǎng)(而他(她)也往往是根據(jù)這種觀察而劃分的子倉(cāng)),他(她)就可以授權(quán)這些開(kāi)發(fā)者負(fù)責(zé)某個(gè)子倉(cāng)。這些開(kāi)發(fā)者被稱(chēng)為副官(Lieutenant)。所有的副官其實(shí)都是一個(gè)針對(duì)自己負(fù)責(zé)子代碼倉(cāng)的集成管理員,按照小項(xiàng)目運(yùn)作的方式維護(hù)對(duì)應(yīng)子倉(cāng)的master分支。他們也稱(chēng)為仁慈的司令員(benevolent dictator)。最后司令員會(huì)把副官的master分支合并到自己的master分支,合并到官方發(fā)布的代碼倉(cāng)(Blessed Repository)中去。

ad721ffa-9294-11ed-bfe3-dac502259ad0.png

為了方便開(kāi)發(fā)者的離線(xiàn)編程,Git還給開(kāi)發(fā)者提供了一種暫存區(qū)(Staging area)的機(jī)制。這個(gè)暫存區(qū)給開(kāi)發(fā)者一個(gè)再想一想的機(jī)會(huì)。也就是你的很多修改可以是先提交到暫存區(qū)里(git add)的,然后再一并提交到你的代碼倉(cāng)(git commit)。這種機(jī)制很暖心,當(dāng)然,這個(gè)特性不應(yīng)該是分布式開(kāi)發(fā)特有的,在集中式開(kāi)發(fā)管理環(huán)境下,這個(gè)功能也可以開(kāi)發(fā)出來(lái)。

ad906a3c-9294-11ed-bfe3-dac502259ad0.png

自由與約束

集中式開(kāi)發(fā)和分布式開(kāi)發(fā)在開(kāi)發(fā)者自由與約束方面,基本策略也有差別。

集中式開(kāi)發(fā)

集中式開(kāi)發(fā)是制定了非常多的規(guī)則,開(kāi)發(fā)者只能在這些規(guī)則下進(jìn)行,甚至為了確保主分支的穩(wěn)定性,很多規(guī)則已經(jīng)脫離了版本管理系統(tǒng)本身,而是通過(guò)專(zhuān)業(yè)的項(xiàng)目經(jīng)理進(jìn)行額外的跟進(jìn)管理,比如提交前是否進(jìn)行了單元測(cè)試,集成測(cè)試,是否完整地運(yùn)行了測(cè)試套件,以及要寫(xiě)各種文檔和報(bào)告,所有代碼必須有嚴(yán)謹(jǐn)?shù)拿?guī)范,注釋規(guī)范,提交步驟,甚至還得有一個(gè)故障庫(kù)關(guān)聯(lián),讓開(kāi)發(fā)者嚴(yán)格地自檢自查和修正。可以這么講吧,在集中式開(kāi)發(fā)的規(guī)則下,開(kāi)發(fā)者的自由是很少的,約束是很多的。總結(jié)一下,就是:規(guī)定你干的才能干,其他的都不能干!

分布式開(kāi)發(fā)

分布式開(kāi)發(fā)很少制定規(guī)則,有也是很少的規(guī)則,或者通過(guò)工具自動(dòng)支持和實(shí)現(xiàn)。一個(gè)明顯的規(guī)則就是開(kāi)源項(xiàng)目必須得遵守開(kāi)源許可證協(xié)議。目的是留給開(kāi)發(fā)者最大程度的操作自由。當(dāng)然,在分布式開(kāi)發(fā)的文化下,自驅(qū)力比被安排要重要得多,因?yàn)閳F(tuán)隊(duì)可以有很多開(kāi)發(fā)者,多你一個(gè)不多,少你一個(gè)不少。你要想在團(tuán)隊(duì)中立足,或者有所建樹(shù),就只能靠自己的打拼與貢獻(xiàn),是否被集成管理者,副官或者項(xiàng)目發(fā)起人看中。當(dāng)然,由于互不相識(shí),聯(lián)系方式單一,你們的這種從不信任到信任的過(guò)程建立在郵件溝通過(guò)程中一般是漫長(zhǎng)的,在項(xiàng)目開(kāi)發(fā)過(guò)程中是需要不斷磨合的。當(dāng)然,如果某些開(kāi)發(fā)者只是沖著學(xué)習(xí)的心態(tài),看看代碼,膜拜一下大神,這也是開(kāi)發(fā)者的自由。總結(jié)一下,就是:規(guī)定你不能干的別干,其他的都能干!

寫(xiě)在最后

和Git同時(shí)代的有很多的版本管理系統(tǒng),包括:SVN、CVS、Subversion、Perforce、Bazaar 、BitKeeper和Monotone。相比于其他的,BitKeeper和Monotone是去中心化的。今天上文談到的大部分Git的優(yōu)勢(shì)都是圍繞著集中化和分布式版本管理工具的比較,沒(méi)有去刻意比較BitKeeper和Monotone。

沒(méi)有使用BitKeeper,這里面有商業(yè)化的原因。當(dāng)時(shí)Torvalds確實(shí)動(dòng)過(guò)念頭想直接用BitKeeper,這是一個(gè)專(zhuān)用軟件,當(dāng)時(shí)采用的是 BitMover 許可證,不是真正開(kāi)源的,所以包括GNU 項(xiàng)目創(chuàng)始人Richard Stallman在內(nèi)的一些人對(duì)使用BitKeeper表示了非常大的意見(jiàn)。甚至Linux 內(nèi)核郵件列表中還因此爆發(fā)了激烈的口水戰(zhàn)。Torvalds也是被逼無(wú)奈,自己直接開(kāi)發(fā)了一個(gè)工具,還戲虐地稱(chēng)為它Git(英式英語(yǔ)俚語(yǔ)“不愉快的人”),并直接把Git通過(guò)GNU 通用公共許可證 2.0 版(開(kāi)源許可證)開(kāi)源,這才有了后續(xù)的故事。這算不算是一種有心栽花花不開(kāi),無(wú)心插柳柳成蔭呢?就由大家來(lái)評(píng)判了。

當(dāng)然你可能也還要問(wèn),那他為啥也不想用Monotone呢?Monotone也是開(kāi)源的,而且Monotone也使用 SHA-1來(lái)識(shí)別修訂并確保數(shù)據(jù)沒(méi)有因意外損壞而更改,看似沒(méi)什么大毛病啊?我們要理解Torvalds的性格,他是個(gè)追求完美的人。他對(duì)C++編寫(xiě)的Monotone的性能表現(xiàn)不滿(mǎn)意,他認(rèn)為當(dāng)時(shí)的 Monotone 還沒(méi)有達(dá)到像 Linux 內(nèi)核開(kāi)發(fā)這樣大的項(xiàng)目所需的性能水平,所以用C語(yǔ)言開(kāi)發(fā)了Git。

最后談到Git能成功,Torvalds要感謝當(dāng)時(shí)在Google工作的濱野純(Junio C Hamano),他慧眼識(shí)珠,把Git的維護(hù)工作交給了這位日本軟件工程師牽頭,而濱野純也確實(shí)沒(méi)有讓他失望。Git后來(lái)在濱野純的領(lǐng)導(dǎo)下,聚攏了大量的開(kāi)發(fā)者一同支持和共建,不斷地改進(jìn)和完善Git,至今已經(jīng)出了65個(gè)版本或補(bǔ)丁,讓它在保持簡(jiǎn)潔易懂的干凈界面前提下,豐富了更多的功能、插件和工具,成長(zhǎng)為當(dāng)之無(wú)愧的世界最優(yōu)秀的開(kāi)源版本管理軟件。


原文標(biāo)題:河套IT TALK 25:Git為什么能夠成功,而其他的失敗了?

文章出處:【微信公眾號(hào):開(kāi)源技術(shù)服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)源技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    389

    瀏覽量

    8745
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3952

    瀏覽量

    21107

原文標(biāo)題:河套IT TALK 25:Git為什么能夠成功,而其他的失敗了?

文章出處:【微信號(hào):開(kāi)源技術(shù)服務(wù)中心,微信公眾號(hào):共熵服務(wù)中心】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式開(kāi)發(fā)繞不開(kāi)的版本管理工具——git

    Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),由Linux之父Linus Torvalds于2005年用C語(yǔ)言開(kāi)發(fā),主要是為了幫助管理Linux內(nèi)核開(kāi)發(fā)而創(chuàng)建的一個(gè)開(kāi)放源碼的版本控制軟件。Git與常用的版本
    的頭像 發(fā)表于 01-30 16:47 ?1328次閱讀

    海辰儲(chǔ)能受邀參加河套深港科技創(chuàng)新合作區(qū)香港園區(qū)開(kāi)園典禮

    12月22日,河套深港科技創(chuàng)新合作區(qū)(河套合作區(qū))香港園區(qū)舉行開(kāi)園典禮,行政長(zhǎng)官李家超與中央港澳辦、國(guó)務(wù)院港澳辦分管日常工作的副主任徐啟方,中央港澳辦、國(guó)務(wù)院港澳辦副主任、香港中聯(lián)辦主任周霽,深圳市
    的頭像 發(fā)表于 12-25 11:28 ?676次閱讀

    5G25系列射頻連接器技術(shù)解析與應(yīng)用指南

    Molex 5G25射頻連接器是柔性對(duì)板連接器,采用屏蔽設(shè)計(jì),支持使用高頻信號(hào)(高達(dá)25GHz)并能夠降低EMI。5G25系列使射頻天線(xiàn)模塊和移動(dòng)設(shè)備的設(shè)計(jì)人員
    的頭像 發(fā)表于 11-20 10:15 ?518次閱讀

    STM32H743 QSPI初始化成功,讀數(shù)據(jù)失敗怎么解決?

    在實(shí)驗(yàn)野火開(kāi)發(fā)部STM32H743時(shí),配置QSPI驅(qū)動(dòng)W25Q256JV,初始化成功,但后續(xù)都失敗,如圖1 我的配置過(guò)程如下, 1、使
    發(fā)表于 10-14 07:14

    SFUD QSPI讀寫(xiě)w25q64jv失敗是什么原因?qū)е碌模?/a>

    rtthread 版本: 5.1.0 芯片: stm32H743XI, 接口 qspi 20MHz Flash: w25q64jv 第一次上電能正常讀取到ID, 但是只有這一次成功, 之后就都是0
    發(fā)表于 09-29 07:37

    電流探頭消磁失敗的原因與解決策略

    探頭的消磁失敗現(xiàn)象時(shí)有發(fā)生,這不僅會(huì)降低測(cè)量結(jié)果的準(zhǔn)確性,還可能影響測(cè)試進(jìn)度。本文深入剖析消磁失敗的常見(jiàn)原因,并提出了針對(duì)性的解決策略。 一、 消磁失敗的常見(jiàn)原因 一、 硬件故障影響
    的頭像 發(fā)表于 09-18 13:46 ?592次閱讀
    電流探頭消磁<b class='flag-5'>失敗</b>的原因與解決策略

    rt_thread studio import gd32h759i_start 失敗的原因?

    使用rt_thread studio導(dǎo)入git 下載的bsp失敗,導(dǎo)入目錄是 bsp/gd32/gd32h759i-start
    發(fā)表于 09-15 07:07

    ubuntu 22.04 執(zhí)行pkgs--update 失敗的原因?

    ubuntu 22.04 使用pkgs —update 失敗,我的源碼是從gitee , git 是可以正常使用的
    發(fā)表于 09-15 06:09

    華邦電子W25Q-RV系列NOR Flash的四大本領(lǐng)

    在汽車(chē)、物聯(lián)網(wǎng)和工業(yè)自動(dòng)化等應(yīng)用場(chǎng)景中,存儲(chǔ)器是否能夠穩(wěn)定運(yùn)行直接影響產(chǎn)品的可靠性。華邦推出的 W25Q-RV 系列 NOR Flash,成功通過(guò) 105°C 的工業(yè)級(jí)高溫循環(huán)測(cè)試和儲(chǔ)能測(cè)試,以超越 JEDEC 標(biāo)準(zhǔn)的性能,在嚴(yán)
    的頭像 發(fā)表于 08-16 17:14 ?1723次閱讀

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】1. 環(huán)境搭建與代碼整編

    git-lfs 二、抓取代碼 可以直接將如下代碼塊存成setup.sh文件,注意LF結(jié)尾 拷貝到/home目錄下,直接運(yùn)行./setup.sh 如果網(wǎng)絡(luò)給力的話(huà),可以一次性運(yùn)行成功。 如果不行可以按步驟依次
    發(fā)表于 07-08 23:07

    廈門(mén)市開(kāi)源芯片產(chǎn)業(yè)促進(jìn)會(huì)R-Talk第13期成功舉辦

    2025年6月28日,由中國(guó)開(kāi)放指令生態(tài)(RISC-V)聯(lián)盟福建區(qū)域中心、廈門(mén)市開(kāi)源芯片產(chǎn)業(yè)促進(jìn)會(huì)(“開(kāi)芯會(huì)”)和廈門(mén)市校友經(jīng)濟(jì)促進(jìn)會(huì)聯(lián)合主辦的R-Talk第13期活動(dòng)在中科(廈門(mén))數(shù)據(jù)智能研究院
    的頭像 發(fā)表于 06-30 11:36 ?909次閱讀
    廈門(mén)市開(kāi)源芯片產(chǎn)業(yè)促進(jìn)會(huì)R-<b class='flag-5'>Talk</b>第13期<b class='flag-5'>成功</b>舉辦

    CYUSB3014通過(guò)SPI接口固化img到M25P40,重啟失敗怎么解決?

    CYUSB3014通過(guò)SPI接口固化img到M25P40,重啟失敗. 啟動(dòng)模式PMODE=0F1. 下載完img后,顯示下載成功,但是重啟 ,程序沒(méi)有運(yùn)行,還是顯示bootloader
    發(fā)表于 06-04 06:22

    通過(guò)control center上位機(jī)讀取USB芯片CY7C68013A數(shù)據(jù)失敗的原因?怎么解決?

    大家好,通過(guò)control center上位機(jī)讀取CY7C68013A芯片的數(shù)據(jù),連續(xù)讀取512個(gè)字節(jié)能夠成功,讀取2個(gè)字節(jié)失敗,錯(cuò)誤碼是997,一開(kāi)始讀取2個(gè)字節(jié)也是失敗的,先讀取5
    發(fā)表于 05-30 06:43

    Linux內(nèi)核編譯失敗?移動(dòng)硬盤(pán)和虛擬機(jī)的那些事兒

    Linux內(nèi)核卻失敗,這是咋回事?FAT和NTFS文件系統(tǒng)不能支持軟鏈接,在這寫(xiě)格式的磁盤(pán)里編譯內(nèi)核會(huì)失敗,同樣也不能在這樣的磁盤(pán)里解壓內(nèi)核源碼,會(huì)造成軟鏈接被破
    的頭像 發(fā)表于 04-11 11:36 ?998次閱讀
    Linux內(nèi)核編譯<b class='flag-5'>失敗</b>?移動(dòng)硬盤(pán)和虛擬機(jī)的那些事兒

    Git的常規(guī)使用:Idea集成GitHub

    登錄之后點(diǎn)擊右上角+號(hào),New repository創(chuàng)建倉(cāng)庫(kù),之后填寫(xiě)倉(cāng)庫(kù)名稱(chēng)和其他選項(xiàng)。
    的頭像 發(fā)表于 03-13 16:08 ?842次閱讀
    <b class='flag-5'>Git</b>的常規(guī)使用:Idea集成GitHub