Git Pro讀書筆記-1-概念

致謝

  • 書名:Pro Git簡體中文版
  • 做者:Scott Chacon
  • 出版社:Apress
    雖然我看的是電子版,但仍是得感謝做者的付出,謝謝!

基礎要點:

  1. 直接快照,而非比較差別
    Git與其餘版本控制系統的主要差異在於:
    Git只關心文件數據的總體是否發生變化
    SVN:只關心文件內容的具體差別(如:那些文件更新了,都更新了哪些行的什麼內容)git

    Git每次提交更新時會縱覽一遍全部文件的指紋信息並對文件做一快照,而後保存一個指向此次快照的索引。算法

    SVN:
    圖片描述
    圖片描述數據庫

  2. 近乎全部操做均可本地執行
    Git:絕大多數操做只須要訪問本地文件和資源
    SVN:差很少全部操做都須要聯網安全

    Git由本地數據庫,能夠直接讀取本地數據庫進行展現。
    若是要查看差別,Git會取出一個月前的快照和當前文件作一次差別計算,沒必要從新請求遠程服務器。服務器

  3. 時刻保持數據完整性spa

    在保存前,Git都要進行內容的校驗和計算,並將結果做爲數據的惟一標識和索引。
    Git使用SHA-1算法計算校驗和,經過對文件的內容或目錄計算出SHA-1哈希值,做爲支付字符串:版本控制

    24b9da6552252987aa493b52f8696cd6d3b00373code

    實際上,全部保存在Git數據庫的東西都是用此哈希值作索引,而不是靠文件名。索引

  4. 多數操做僅添加數據
    一旦提交快照後就徹底不用擔憂丟失數據,特別是在養成了按期推送至其餘鏡像倉庫的習慣的話。圖片

  5. 三種狀態

    • 已提交(committed):該文件已經被安全地保存在本地數據庫中了。
    • 已修改(modified): 修改了某個文件,但尚未提交保存,沒有放到暫存區域中。
    • 已暫存(staged): 已修改的文件放在暫存區域中。

    文件流轉的工做區域:

    • Git的本地數據目錄
    • 工做目錄
    • 暫存區域

    基本的Git工做流程:

    1. 在工做目錄中修改某些文件。
    2. 對這些修改了的文件做快照,並保存到暫存區域。
    3. 提交更新,將保存在暫存區域的文件快照轉儲到 git 目錄中。
相關文章
相關標籤/搜索