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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Git 的特点—— Git 学习笔记 02

發布時間:2025/3/15 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git 的特点—— Git 学习笔记 02 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Git 簡史
  • Git 的特點
    • 直接記錄快照,而非差異比較
    • 近乎所有操作都是本地執行
    • 保證完整性
    • 一般只添加數據
  • 參考資料

Git 簡史

眾所周知,Linux 內核開源項目有著為數眾多的參與者。這么多人在世界各地為 Linux 編寫代碼,那Linux 的代碼是如何管理的呢?事實是在 2002 年以前,世界各地的開發者把源代碼通過 diff 的方式發給 Linus,然后由 Linus 本人手工合并。

你也許會問,難道那時候就沒有版本控制系統嗎?有是有,比如 CVS、SVN. 雖然它們免費且開源,可是用起來速度太慢,且必須聯網才能使用。也有一些商用的版本控制系統,雖然比 CVS、SVN 好用,可是要收費,這和 Linux 的開源精神不符。

到了 2002 年,Linux 內核已經發展了十年有余。代碼庫之龐大很難再讓 Linus 繼續通過手工方式來管理了。于是 Linus 選擇了一個商業版本控制系統 BitKeeper(由 BitMover 公司開發,屬于分布式版本控制系統)。出于人道主義精神,BitMover 公司授權 Linux 社區免費使用 BitKeeper.

2005 年,BitMover 公司同 Linux 內核開源社區的合作關系結束,他們收回了 Linux 內核社區
免費使用 BitKeeper 的權力。這可怎么辦呢?自己動手,豐衣足食。Linus 決定自行開發版本控制系統。僅用十天的時間,他就編寫出了 git 的第一個版本(大神就是大神啊)。一個月以后,Linux 內核的源碼已經由 git 管理了!

Git 的特點

直接記錄快照,而非差異比較

git 和其它版本控制系統(包括 Subversion 和近似工具)的主要差別在于 git 對待數據的方法。其它系統(比如 CVS、Subversion、Perforce、Bazaar 等等)將它們保存的信息看作是一組基本文件和每個文件隨時間逐步累積的差異。如下圖所示:

但是 git 不按照以上方式對待或保存數據。 反之,git 更像是把數據看作是對小型文件系統的一組快照。 每次你提交更新,git 都會對當時的全部文件制作一個快照并保存這個快照的索引。 為了高效,如果文件沒有修改,git 不再重新存儲該文件,而是用一個鏈接指向之前存儲的文件。

git 對待數據更像是一個 快照流
(下圖中虛線表示之前存儲過,所以不重復存儲。)

近乎所有操作都是本地執行

在 git 中的絕大多數操作都只需要訪問本地文件和資源。比起所有操作都有網絡延時開銷的集中式版本控制系統,Git 在這方面會讓你感到“迅雷不及掩耳盜鈴兒響叮當”。 因為你在本地磁盤上就有項目的完整歷史,所以大部分操作看起來瞬間完成。

這也意味著在斷網環境下,幾乎可以進行任何操作。 比如你在飛機上對代碼做了一些修改,你能愉快地提交,直到有網絡連接時再上傳。 換做用 Subversion 或 CVS,你只能修改文件,但不能向數據庫提交修改(因為你沒網)。

保證完整性

git 中所有數據在存儲前都計算校驗和,然后以校驗和來引用。 這意味著不可能在 git 不知情的情況下更改任何文件目錄。若你在傳送過程中丟失信息或損壞文件,Git 就能發現。

git 用以計算校驗和的機制叫做 SHA-1 散列。 這是一個由 40 個十六進制字符組成的字符串,基于 git 中文件的內容或目錄結構計算出來。 SHA-1 哈希看起來是這樣的:

24b9da6552252987aa493b52f8696cd6d3b00373

git 中使用這種哈希值的情況很多。實際上,git 數據庫中保存的信息都是以文件內容的哈希值來索引,而不是文件名,也不是 Subversion 那樣連續的版本號。

一般只添加數據

你執行的 git 操作,幾乎只往 git 數據庫中增加數據。 很難讓 git 執行任何不可逆操作,或者讓它以任何方式清除數據。 同別的 VCS 一樣,未提交更新時有可能丟失或弄亂修改的內容;但是一旦你提交快照到 git 中,就難以再丟失數據。如果你還定期把數據推送到其他倉庫,那么你的數據就更難弄丟了。


參考資料

[1] https://git-scm.com/book/zh/v2/起步-Git-基礎
[2] https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

總結

以上是生活随笔為你收集整理的Git 的特点—— Git 学习笔记 02的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。