? ? ? ? 上次的博文Git實戰(一)版本號控制概述中我們簡介了一下版本號控制系統的概念,重點對版本號控制的三種類型進行了分析和對照,從本篇博文開始我們進入Git的世界,首先介紹一下Git實現版本號控制的原理。
? ? ? ??在上述圖片中,橫向表示各個版本號,縱向表示各個快照(所謂快照。即其所表示文件的一個副本或一個復制品)。在version1中,存在三個快照各自是A、B、C;在version2中,A、C發生了變化。那么我們就對A、C做一個快照A1、C1。而B沒有不論什么變化,那么就不再做快照而僅僅是做一個上次的快照做一個鏈接B;以此類推。
? ? ? ??通過上述分析。我們能夠得出SVN等其它版本號控制系統關心的是每個文件變化的內容。即側重于細節內容。而Git則很多其它的關心每個文件總體的變化,即側重于總體。這就是Git與其它版本號控制系統的主要差別。
? ? ? ??簡單的講,Git本身僅僅是一個版本號控制工具,使用Git并沒有多少難度,假設您之前使用過類似的版本號控制工具,那么完畢一些日常性的操作,應該說是很easy的,但Git本身另一些與其它版本號控制工具所不同的內容。這就須要我們對Git的思想和工具原理做一個簡單的了解了。
? ? ? ??Git與SVN等其它版本號控制系統的最重要的一點差別在于,Git僅僅關心文件數據的總體是否變化,而不是關心文件內容的差異。
SVN等原理分析
? ? ? ??怎樣理解呢?我們能夠通過兩種圖進行比較。首先看一下SVN等其它版本號控制系統的原理圖。例如以下所看到的:? ? ? ??在上述圖片中,橫向表示各個版本號,縱向表示各個文件和其差異。在version1中,存在三個文件各自是fileA、fileB、fileC;在version2中,fileA、fileC發生變化1,那么我們就變化1進行記錄;在version3中,fileC發生了變化2,那么我們就將變化2進行記錄;以此類推。
Git原理分析
? ? ? ??接下來。我們再來看一下Git原理圖。例如以下所看到的:? ? ? ??在上述圖片中,橫向表示各個版本號,縱向表示各個快照(所謂快照。即其所表示文件的一個副本或一個復制品)。在version1中,存在三個快照各自是A、B、C;在version2中,A、C發生了變化。那么我們就對A、C做一個快照A1、C1。而B沒有不論什么變化,那么就不再做快照而僅僅是做一個上次的快照做一個鏈接B;以此類推。
? ? ? ??通過上述分析。我們能夠得出SVN等其它版本號控制系統關心的是每個文件變化的內容。即側重于細節內容。而Git則很多其它的關心每個文件總體的變化,即側重于總體。這就是Git與其它版本號控制系統的主要差別。
? ? ? ??簡單的講,Git本身僅僅是一個版本號控制工具,使用Git并沒有多少難度,假設您之前使用過類似的版本號控制工具,那么完畢一些日常性的操作,應該說是很easy的,但Git本身另一些與其它版本號控制工具所不同的內容。這就須要我們對Git的思想和工具原理做一個簡單的了解了。
? ? ? ??接下來我們繼續解說Git的其它內容,敬請期待!