Git實戰(二)原理

? ? ? ? 上次的博文Git實戰(一)版本號控制概述中我們簡介了一下版本號控制系統的概念,重點對版本號控制的三種類型進行了分析和對照,從本篇博文開始我們進入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的其它內容,敬請期待!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540741.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540741.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是html的混雜模式_HTML的完整形式是什么?

什么是html的混雜模式HTML:超文本標記語言 (HTML: Hyper Text Markup Language) HTML is an abbreviation of Hypertext markup language. Hypertext markup language is a text based standard markup language used to create web pages and design documents whi…

PHP-Manual的學習----【語言參考】----【類型】-----【對象】

Object 對象1.對象初始化要創建一個新的對象 object ,使用 new 語句實例化一個類: class foo{ function do_foo(){ echo "1111"; }}$bar new foo;echo $bar->do_foo();輸出:1111注解:一個類可以初始化…

kotlin 兩個數字相加_Kotlin程序交換兩個數字

kotlin 兩個數字相加Given two numbers, we have to swap them. 給定兩個數字,我們必須交換它們。 Example: 例: Input:First number: 10Second number: 20Output:First number: 20Second number: 10To swap two numbers – here we are using third v…

Kotlin入門(14)繼承的那些事兒

上一篇文章介紹了類對成員的聲明方式與使用過程,從而初步了解了類的成員及其運用。不過早在《Kotlin入門(12)類的概貌與構造》中,提到MainActivity繼承自AppCompatActivity,而Kotlin對于類繼承的寫法是“class MainActivity : AppCompatActiv…

在Scala中列出| 關于Scala列表的完整教程

Scala | 清單 (Scala | List) List in Scala is a collection that stores data in the form of a liked-list. The list is an immutable collection which means the elements of a list cannot be altered after the list is created. Lists are flexible with data types, …

MySQL單機多實例部署詳解之------多實例分別定義不同的配置文件

mysql多實例安裝---分別定義不同的配置文件1.安裝MySQL需要的依賴包[rootMySQL ~]# yum install ncurses-devel libaio-devel cmake -y[rootMySQL ~]# rpm -qa ncurses-devel libaio-develncurses-devel-5.7-4.20090207.el6.x86_64libaio-devel-0.3.107-10.el6.x86_642.安裝編譯…

javascript模塊_JavaScript中的模塊

javascript模塊JavaScript模塊 (JavaScript Modules) One of the key features of programming fundamentals is breaking down your code into fragments. These fragments depending on its functionality have been coined various terms like functions, components, modul…

在mac上安裝Docker

1.進入一下地址進行下載docker https://download.docker.com/mac/stable/Docker.dmg 進入后進行下載后進行安裝 2.將其拖動到Appliaction中即可 3.第一打開會有一個這樣的歡迎頁面 3.檢查是否安裝完成 出現上圖所示標示安裝完成了

composer 檢查鏡像_檢查N元樹中的鏡像

composer 檢查鏡像Problem statement: 問題陳述: Given two n-ary trees, the task is to check if they are mirrors of each other or not. 給定兩個n元樹,任務是檢查它們是否互為鏡像。 Note: you may assume that root of both the given tree as …

浪潮各機型前面板指示燈含義

NF560D2 NF3020M2 NF5020M3 NF5140M3 NF5212H2 NF5220 NF5224L2 NF5240M3 NF5270M3 NF5280M2 NF5280M3 NF5540M3 NF5580M3 NF8420M3 NF8520 NF8560M2 說明:轉浪潮官網。

python dll 混合_Python | 條線混合圖

python dll 混合In some of the cases, we need to plot a bar-line hybrid plot. This plot helps in a better understanding of dynamics as well as the relative magnitude of each point in the plot. Bar-Line Hybrid Plots are mostly used for the representation of …

測試八 賽后感受

測試八 當我打開T1的時候,就沒有往下看題目了,主要是發現T1就是之前做過,而且我也看過題解的題目,接著就開始鉆研,當然,也沒什么好鉆研的,大概思路還是知道的,再寫寫數據就已經很清晰…

推薦五個免費的網絡安全工具

導讀: 在一個完美的世界里,信息安全從業人員有無限的安全預算去做排除故障和修復安全漏洞的工作。但是,正如你將要學到的那樣,你不需要無限的預算取得到高質量的產品。這里有SearchSecurity.com網站專家Michael Cobb推薦的五個免費…

bios部署模式審核模式_BIOS的完整形式是什么?

bios部署模式審核模式BIOS:基本輸入輸出系統 (BIOS: Basic Input Output System) BIOS is an abbreviation of the Basic Input Output System. In the beginning, when you first set on your computer, the first software which starts run by the computer is &…

day04-裝飾器

一、裝飾器定義 1)裝飾器:本質是函數。 2)功能:用來裝飾其他函數,顧名思義就是,為其他的函數添加附件功能的。 二、原則 1)不能修改被裝飾函數的源代碼 2)不能修改被裝飾函數的調用方…

c 語言bool 類型數據_C ++中的bool數據類型

c 語言bool 類型數據In C programming language, to deal with the Boolean values – C added the feature of the bool data type. A bool variable stores either true (1) or false (0) values. 在C 編程語言中,為了處理布爾值– C 添加了bool數據類型的功能 。…

C ++中的std :: binary_search()

binary_search()作為STL函數 (binary_search() as a STL function) Syntax: 句法: bool binary_search (ForwardIterator first, ForwardIterator last, const T& value);Where, 哪里, ForwardIterator first iterator to start of the range For…

HNUSTOJ-1437 無題

1437: 無題 時間限制: 1 Sec 內存限制: 128 MB提交: 268 解決: 45[提交][狀態][討論版]題目描述 tc在玩一個很無聊的游戲:每一次電腦都會給一個長度不超過10^5的字符串,tc每次都從第一個字符開始,如果找到兩個相鄰相一樣的字符,…

凱撒密碼pythin密碼_凱撒密碼術

凱撒密碼pythin密碼Caesar cipher is one of the well-known techniques used for encrypting the data. Although not widely used due to its simplicity and being more prone to be cracked by any outsider, still this cipher holds much value as it is amongst the fir…

MultiQC使用指導

MultiQC使用指導 官網資料文獻:MultiQC --- summarize analysis results for multiple tools and samples in a single report參考資料一: 整合 fastq 質控結果的工具 簡介 MultiQC 是一個基于Python的模塊, 用于整合其它軟件的報告結果, 目前支持以下軟…