日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

Git基本原理-hash算法

發(fā)布時(shí)間:2023/12/13 综合教程 50 生活家
生活随笔 收集整理的這篇文章主要介紹了 Git基本原理-hash算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、哈希

??哈希是一個(gè)系列的加密算法,各個(gè)不同的哈希算法雖然加密強(qiáng)度不同,但是有以下幾個(gè)共同點(diǎn):
??①不管輸入數(shù)據(jù)的數(shù)據(jù)量有多大,使用同一個(gè)哈希算法,得到的加密結(jié)果長(zhǎng)度固定
??②哈希算法確定,輸入數(shù)據(jù)確定,輸出結(jié)果保證不變
??③哈希算法確定,輸入數(shù)據(jù)有變化,輸出結(jié)果一定有變化,而且通常變化很大
??④哈希算法不可逆
??⑤哈希算法中不區(qū)分英文大小寫
??哈希算法有很多種,如:MD5、SHA-1等。Git 底層采用的是 SHA-1 ,因?yàn)楣K惴梢员挥脕?lái)驗(yàn)證文件,Git 就是靠這種機(jī)制來(lái)從根本上保證數(shù)據(jù)完整性的

二、Git保存版本的機(jī)制
?1、集中式版本控制工具(如SVN)的文件管理機(jī)制:以文件變更列表的方式存儲(chǔ)信息。這類系統(tǒng)將它們保存的信息看作是一組基本文件(對(duì)應(yīng)下圖的Version1)和每個(gè)文件隨時(shí)間逐步累積的差異(對(duì)應(yīng)下圖的其他Version),在文件管理的時(shí)候只保存當(dāng)前版本相對(duì)于上一個(gè)版本的差異,這是一種增量式的版本控制

?2、Git 的文件管理機(jī)制:Git 把數(shù)據(jù)看作是小型文件系統(tǒng)的一組快照。每次提交更新時(shí) Git 都會(huì)對(duì)當(dāng)前的全部文件制作一個(gè)快照并保存這個(gè)快照的索引。為了高效,如果文件沒有修改,Git 不再重新存儲(chǔ)該文件,而是只保留一個(gè)鏈接指向之前存儲(chǔ)的文件。所以 Git 的工作方式可以稱之為快照流。下圖中Version2及其之后的實(shí)線框中的文件表示該版本的該文件相較于上個(gè)版本有變動(dòng),虛線框中的文件表示該版本的該文件相較于上一版本沒有變動(dòng)(只保存上一個(gè)版本的指針,而無(wú)需保存文件),這樣根據(jù)當(dāng)前版本的文件和指向上一版本的指針就可以找到該版本的所有文件的狀態(tài)

?Git 的提交對(duì)象:

?提交對(duì)象及其父對(duì)象形成的鏈條:

三、Git的分支管理機(jī)制(依賴于指針的變化)
?1、分支的創(chuàng)建:創(chuàng)建一個(gè)指向HEAD當(dāng)前指向的分支的當(dāng)前版本的指針

??說(shuō)明:此時(shí)HEAD指向master分支的f30ab版本,那么新創(chuàng)建的testing分支的指針也會(huì)指向master分支的f30ab版本,實(shí)際上是創(chuàng)建的分支的指針會(huì)指向HEAD指針指向的分支所在的版本
?2、分支的切換:僅僅是改變HEAD指針的指向

??說(shuō)明:切換分支時(shí),僅僅是切換一下HEAD指針的指向,從原分支指向想切換的分支
?3、版本的提交

??說(shuō)明:若此時(shí)在testing分支上提交了版本,則只會(huì)使該分支的指針向后移動(dòng),不會(huì)影響其他分支,如上圖所示,其他分支的指針指向并沒有發(fā)生變化
?4、沖突的產(chǎn)生

??說(shuō)明:在testing分支修改后,再將HEAD切換至master,然后在master上修改相同的文件,然后再master分支上提交,就會(huì)形成下面的局面:這時(shí)就有可能產(chǎn)生沖突,這合并版本的時(shí)候就需要解決沖突

5、和SVN的比較
??SVN在創(chuàng)建分支的時(shí)候是將所有文件復(fù)制一份,而git僅僅是創(chuàng)建一個(gè)指向當(dāng)前版本的指針,因此效率很高;Git中分支之間的切換僅僅是HEAD指針的變化,效率也很高;
??綜上:Git的操作很依賴于HEAD指針的變化。

原文:https://blog.csdn.net/rubulai/article/details/84563106

總結(jié)

以上是生活随笔為你收集整理的Git基本原理-hash算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。