學習git的基本原理有利於理解git命令背後的執行原理,
需要將腦子裡面之前關於其他版本管理工具比如cvs、subversion、perforce的知識暫時忘掉,因為它們與git的使用是不太相同的
其他版本工具比如vcs認為它們儲存的資訊是由一系列的檔案組成,以及每個檔案上做出的改動,
git儲存資料時認為資料更像是一系列的微型檔案系統的快照,每次提交資料或者儲存狀態到git上時,git會給所有檔案生成快照,並為每個檔案儲存乙個指向快照的引用,。
為了提高效率,git不會重複儲存檔案,它會儲存乙個指向前面已經儲存的檔案的鏈結。
git認為資料更像是快照的資料流。
幾乎所有的操作都在本地進行
所有資料都在本地,不需要從其他主機取資料,cvcs的大部分操作會受到網路延遲的影響,而git則因為在本地取資料,顯得更快。
例項:如果你想瀏覽專案的歷史,git不需要去伺服器去找專案的歷史資料,本地資料庫就儲存了這些資料。
如果你想檢視現在的專案和乙個月前的專案有什麼區別,git會直接從本地資料庫讀取兩個版本的資料,並進行比對,而不需要從遠端伺服器拉取乙個月前的專案資料,再進行對比。
所有檔案儲存在git上都有乙個校驗碼,這意味著你不可能繞過git去修改檔案中的資料,這是git最基本的功能,這保證了你在傳輸資料的過程中不會因為丟失資料而沒有察覺,git會檢測到這一點。
git使用sha-1hash演算法來計算校驗碼,它是由40位字元的字串組成(0-9 a-f)。
例如24b9da6552252987aa493b52f8696cd6d3b00373
git在資料庫中儲存檔案時儲存的是內容的hash值而不是檔案的名字。
modified、staged、committed
modified:修改了檔案內容但是還沒有提交到資料庫中
staged:已經在當前版本標記了修改的檔案,等待提交。
committed:資料已經很安全的儲存到本地資料庫中。
Git 基本原理
一 雜湊 雜湊是乙個系列的加密演算法,各個不同的雜湊演算法雖然加密強度不同,但是有以下幾個共同點 不管輸入資料的資料量有多大,使用同乙個雜湊演算法,得到的加密結果長度固定 雜湊演算法確定,輸入資料確定,輸出結果保證不變 雜湊演算法確定,輸入資料有變化,輸出結果一定有變化,而且通常變化很大 雜湊演算法...
git筆記 基本原理
git是乙個分布式版本控制工具。乙個git專案有三個部分組成 工作目錄,本地倉庫和遠端倉庫。其中工作目錄和本地倉庫都在本地磁碟上,遠端倉庫一般可以理解為另一台電腦上的倉庫。工作目錄 就是被git管理的那些檔案 本地倉庫 主要包含兩部分 乙個commit樹,和一系列指向commit樹的指標。commi...
Git基本原理總結
本質上,git是一套內容定址 content addressable 檔案系統,而和我們直接接觸的git介面,只不過是封裝在其之上的乙個應用層。這個關係頗有點類似於計算機網路中應用層和下屬層的關係。在git中,那些和應用層相關的命令 也就是我們最常用的命令,如git commit git push等...