精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

三分鐘上手!一文看懂 Git 的底層工作原理

開發 前端
Git 的本質是一個文件系統(很重要,記住這句話,理解這句話),工作目錄中的所有文件的歷史版本以及提交記錄(commit)都是以文件對象的方式保存在 .git 目錄中的。

這是一篇能讓你迅速了解 Git 工作原理的文章,實戰案例解析,相信我,3 分鐘,絕對能夠有收獲!

Git 目錄結構

Git 的本質是一個文件系統(很重要,記住這句話,理解這句話),工作目錄中的所有文件的歷史版本以及提交記錄(commit)都是以文件對象的方式保存在 .git 目錄中的。

我們先來創建一個名為 git-demo 空目錄,并采用 git init 命令初始化 Git 倉庫。該命令會在工作目錄下生成一個 .git 目錄,該目錄將用于保存工作區中所有的文件歷史的歷史版本,commit,branch,tag 等所有信息。

$ mkdir git-demo
$ cd git-demo
$ git init

其目錄結構如下:

圖片圖片

待會我們重點關注下這幾個目錄:

  • HEAD:工作目錄當前狀態對應的 commit,一般來說是當前 branch 的 head,HEAD 也可以通過 git checkout 命令被直接設置到一個特定的 commit 上,這種情況被稱之為 detached HEAD
  • objects:這里是真正保存 Git 對象的目錄,包括三類對象 commit,tree 和 blob(具體這三類對象是什么,慢慢往下看就知道了)
  • refs:用來保存 branch 和 tag 對應的 commit

Git 三大對象

目前 Objects 目錄中還沒有任何內容,我們創建一個文件并提交:

$ git:(master) echo "my project" > README
$ git:(master) mkdir src
$ git:(master) echo "hello world" > src/file1.txt

添加并提交:

$ git:(master) git add .
$ git:(master) git commit -m "init commit"

圖片圖片

從打印輸出可以看到,上面的命令創建了一個 commit 對象,該 commit 包含兩個文件。查看 .git/objects 目錄,可以看到該目錄下增加了 5 個子目錄 06,3b, 82, c5, ca,每個子目錄下有一個以一長串字母數字命令的文件:

圖片圖片

這一大串是什么?

Git Object 目錄中存儲了三種對象:Commit, Tree 和 Blob,Git 會為對象生成一個文件,并根據文件信息生成一個 SHA-1 哈希值作為文件內容的校驗和,創建以該校驗和前兩個字符為名稱的子目錄,并以 (校驗和) 剩下 38 個字符為文件命名 ,將該文件保存至子目錄下。

可以通過 git cat-file -t 哈希值 命令查看對象類型,通過 git cat-file -p 哈希值 命令查看對象中的內容,哈希值就是目錄名+文件名,在沒有歧義的情況下,命令可以不用輸入整個哈希值,輸入前幾位即可。

我們挨個看下:

065bca(blob):

圖片圖片

3b18e(blob):

圖片圖片

824244(tree):

圖片圖片

c5bc98(commit):

圖片圖片

ca96(tree):

圖片圖片

認真看圖,大家看完也就差不多清楚了 commit、blob、tree 這幾大對象是什么東西了

從 commit 對象(c5bc98)入手,commit 對象中保存了 commit 的作者,commit 的描述信息,簽名信息以及該 commit 中包含哪些 tree 對象和 blob 對象。從上圖可知包含了 tree 對象(ca96)。

可以把 tree 對象看成這次提交相關的所有文件的根目錄,可以看到 ca96 這個 tree 對象中包含了一個 blob 對象(065bca),即 README 文件,以及一個 tree 對象(824244),即 src 目錄。而 blob 對象存儲的就是真正的內容。

這幾個對象的對應關系如下圖所示:

圖片圖片

Git Brach 和 Tag

現在來看下 HEAD 中的內容,前面說過,HEAD 中存儲的是工作目錄當前狀態對應的 commit:

$ git:(master) cat .git/HEAD
ref: refs/heads/master
$ git:(master) cat .git/refs/heads/master
c5bc98b8990bedd7444da537320559e601eba87b

c5bc98 正是我們最近的這次 commit!

master 是一個分支名,所以分支(branch)的本質是一個指向 commit 的指針

我們切一個新分支 feat/work:

圖片圖片

查看下 refs/heads/master 和 refs/heads/feat/work 中的 commit 值:

圖片圖片

從其內容可以看到,feat/work 這個 branch 并沒有創建任何新的版本文件,和 master 一樣指向了 c5bc98 這個 commit。

從上面的實驗可以看出,一個 branch 其實只是一個 commit 對象的應用,Git 并不會為每個 branch 存儲一份拷貝,因此在 git 中創建 branch 幾乎沒有任何代價。

接下來我們在 feat/work 這個 branch上進行一些修改,然后提交:

$ git:(feat/work) echo "new line" >> src/file1.txt
$ git:(feat/work) echo "do nothing" >> License
$ git:(feat/work) git add .
$ git:(feat/work) git commit -m "some change"

圖片圖片

查看當前的 HEAD:

圖片圖片

可以看到 HEAD 指向了 feat/work 這個 branch,而 feat/work branch則指向了 8a442 這個commit,master branch 指向的 commit 未變化,仍然是 c5bc98。

查看 8a442 這個commit對象的內容:

圖片圖片

可以看到 commit 有一個 parent 字段,指向了前一個 commit c5bc98。還包含了一個 tree 對象(2a9dd):

圖片圖片

可以觀察到,由于 README 沒有變化,還是指向的 065bca 這個blob對象。License 是一個新建的 blob 對象,src 和 file1.txt 則指向了新版本的對象。

增加了這次 commit 后,Git 中各個對象的關系如下圖所示:

圖片圖片

Tag 和 branch 類似,也是指向某個 commit 的指針。不同的是 tag 創建后其指向的 commit 不能變化,而 branch 創建后,其指針會在提交新的 commit 后向前移動。

責任編輯:武曉燕 來源: 飛天小牛肉
相關推薦

2023-08-15 08:46:30

Git指針移動

2025-10-27 01:35:00

2021-04-20 13:59:37

云計算

2024-08-30 08:50:00

2020-06-30 10:45:28

Web開發工具

2020-06-29 07:42:20

邊緣計算云計算技術

2020-08-17 17:20:36

pythonJAVA代碼

2024-01-12 07:38:38

AQS原理JUC

2024-05-16 11:13:16

Helm工具release

2019-03-28 08:39:47

5GNSASA

2024-12-18 10:24:59

代理技術JDK動態代理

2009-11-09 12:55:43

WCF事務

2022-02-24 10:28:23

物聯網

2022-02-17 09:24:11

TypeScript編程語言javaScrip

2023-12-27 08:15:47

Java虛擬線程

2024-01-16 07:46:14

FutureTask接口用法

2013-06-28 14:30:26

棱鏡計劃棱鏡棱鏡監控項目

2020-10-29 08:28:42

Java NIO異步非阻塞

2019-12-04 18:45:00

華為Mate X

2021-12-17 07:47:37

IT風險框架
點贊
收藏

51CTO技術棧公眾號

欧美成人日韩| 日韩中文字幕无砖| 日本一区二区三区dvd视频在线 | 成人在线爆射| 国产精品你懂的在线| 亚洲va久久久噜噜噜| 18精品爽视频在线观看| baoyu135国产精品免费| 色噜噜久久综合| 免费成人进口网站| 五月婷婷久久久| 麻豆精品在线视频| 高清欧美电影在线| 免费成人深夜蜜桃视频| 国产精品国产| 日本精品视频一区二区三区| 在线观看18视频网站| 欧美日韩视频精品二区| 狠狠色丁香久久婷婷综合_中| 久久久久免费精品国产| av在线播放中文字幕| 久久精品福利| 日韩午夜电影av| 无码人妻精品一区二区三区66| av片在线观看免费| 欧美激情一区在线| 精品一区二区三区日本| www.av导航| 久久精品国产亚洲aⅴ| 91大神福利视频在线| 国产黄色的视频| 色男人天堂综合再现| 亚洲精品美女久久| 国产成人精品综合久久久久99| 色综合天天色| 色哟哟欧美精品| 国产a级片网站| 在线中文字幕视频观看| 亚洲国产成人一区二区三区| 精品免费视频123区| wwwxxxx国产| 国产在线播精品第三| 国产精品日韩在线观看| 成人h动漫精品一区二区下载| 亚洲三级影院| 欧美精品在线观看91| 我要看一级黄色录像| 欧美精品一二| 一本大道亚洲视频| 小早川怜子久久精品中文字幕| 人人精品亚洲| 精品亚洲国产成av人片传媒| 国产精品九九视频| 粉嫩的18在线观看极品精品| 欧美成人性战久久| 在线观看你懂的视频| 久久wwww| 精品乱码亚洲一区二区不卡| 欧美熟妇另类久久久久久多毛| 国产精品免费精品自在线观看| 欧美三级在线播放| 日本三级黄色网址| 欧美男男gaygay1069| 欧美日韩一区二区三区在线看| 国产一级特黄a大片免费| 电影一区二区| 欧美乱妇20p| 特黄特黄一级片| 97se亚洲| 日韩av一区在线| 泷泽萝拉在线播放| 精品色999| www.久久久久| 久久久久久久久久久久久久免费看| 黄色免费成人| 欧美最猛性xxxxx免费| 波多野结衣绝顶大高潮| 久久精品国产久精国产爱| 成人免费高清完整版在线观看| 国产精品无码免费播放| 国产黄人亚洲片| 国产有色视频色综合| 你懂的视频在线| 国产女人18毛片水真多成人如厕 | 欧美日韩成人综合| 小日子的在线观看免费第8集| 999久久精品| 亚洲精品影视在线观看| 国产午夜精品久久久久久久久| 91精品亚洲| 97视频在线观看成人| 日韩xxx视频| 国产精品 欧美精品| 久久精品第九区免费观看| 国产黄在线观看免费观看不卡| 亚洲视频一二区| 成人午夜精品久久久久久久蜜臀| 日韩av中字| 91精品在线观看入口| 中文在线永久免费观看| 97偷自拍亚洲综合二区| 久久久久久久国产| 91青青草视频| 高清视频一区二区| 亚洲国产精品123| 草草视频在线| 91精品午夜视频| 草草影院第一页| 国产精品99久久| 青草青草久热精品视频在线观看| 国产精品久久久久久免费 | 久久久久久成人网| 亚洲午夜视频| 成人午夜激情网| 久草在线青青草| 亚洲国产精品久久久男人的天堂 | 粉嫩一区二区三区性色av| 欧美二区在线看| 在线播放蜜桃麻豆| 欧美日韩国产小视频在线观看| 伊人网综合视频| 中文字幕免费一区二区三区| 国产精品久久久久久久久影视| 黑人精品一区二区三区| 亚洲欧洲国产日本综合| 青青在线视频免费| 好吊妞视频这里有精品| 精品自拍视频在线观看| 亚洲天堂免费av| 久久久天堂av| 黄色免费视频大全| 成人三级av在线| 欧美成人免费小视频| 在线观看国产成人| 国产色产综合产在线视频| 狠狠干 狠狠操| 国产精品超碰| 久久久午夜视频| www.xxxx国产| 一区二区三区欧美久久| 99久久99精品| 亚洲精品成人| 亚洲va欧美va在线观看| 免费a级人成a大片在线观看| 欧美午夜精品久久久久久超碰| 亚洲一级中文字幕| 久久一区二区三区超碰国产精品| 精品免费视频123区| 两个人看的在线视频www| 亚洲国产美女精品久久久久∴| 久久久久久免费观看| 国产91精品露脸国语对白| 欧美黄色免费网址| caoporn成人| 91禁外国网站| 免费看男男www网站入口在线| 欧美性猛交99久久久久99按摩| 鲁大师私人影院在线观看| 亚洲在线观看| 日韩av图片| 青青久久精品| 美女少妇精品视频| 蜜桃视频久久一区免费观看入口| 亚洲线精品一区二区三区八戒| 99re这里只有| 麻豆久久精品| 五月天婷亚洲天综合网鲁鲁鲁| 久久电影天堂| 久久影视免费观看| 亚洲a视频在线观看| 五月激情综合婷婷| 国产ts在线播放| 精品中文字幕一区二区小辣椒| 吴梦梦av在线| 好吊妞国产欧美日韩免费观看网站| 韩国福利视频一区| 国产在线一在线二| 欧美精品成人一区二区三区四区| a在线视频播放观看免费观看| 成人美女视频在线看| 欧美色图另类小说| 日韩久久电影| 国产二区不卡| 日韩另类视频| 欧美激情三级免费| 男人天堂网在线| 9191久久久久久久久久久| 久久在线视频精品| 国产亚洲欧美一区在线观看| 极品人妻一区二区| 久久国产精品久久久久久电车 | 1024视频在线| 精品国产一区二区三区久久影院| 精品国产xxx| 亚洲视频在线观看一区| 中文字字幕码一二三区| 精品一区二区三区蜜桃| 国产黄色一级网站| 欧美精品aa| 日韩av电影免费在线| 超碰在线成人| 成人美女免费网站视频| 中文在线а√在线8| 久久这里有精品| 国产小视频福利在线| 欧美大片顶级少妇| 在线观看中文字幕av| 第一福利永久视频精品| 国产老头老太做爰视频| 91视视频在线观看入口直接观看www | 成人av免费在线看| 99精品在免费线偷拍| 久久久亚洲影院你懂的| 国产素人视频在线观看| 亚洲天堂网在线观看| 色偷偷在线观看| 91精品国产综合久久福利 | av日韩中文| 久久久久www| av中文天堂在线| 日韩av有码在线| 国产一区二区三区在线观看| 日本精品一区二区三区四区的功能| 久久丫精品久久丫| 玉足女爽爽91| 在线观看天堂av| 国产女主播在线一区二区| 日韩网站在线播放| 不卡电影免费在线播放一区| 免费不卡av网站| 九九久久精品视频| 超碰成人在线播放| 美日韩一区二区三区| 久久人妻精品白浆国产| 亚洲一区二区成人| 国产女大学生av| 91久久在线| 日本a在线免费观看| 激情视频一区二区三区| 野外做受又硬又粗又大视频√| 欧美淫片网站| 欧美一二三不卡| 欧美91福利在线观看| 最近中文字幕免费mv| 91日韩在线| 中文字幕综合在线观看| 久久在线免费| 黄色影视在线观看| 国产一区二区三区四区三区四| 台湾无码一区二区| 亚洲视频中文| 男女啪啪免费视频网站| 一区二区三区国产在线| 日日碰狠狠添天天爽超碰97| 一区二区黄色| 国产综合免费视频| 免费在线看成人av| 激情五月俺来也| 国产一区二区不卡在线| wwwxxxx在线观看| 成人永久aaa| 亚洲综合网在线观看| 国产日韩精品一区二区浪潮av| 亚洲av毛片基地| 国产精品萝li| 免费在线一级片| 婷婷综合久久一区二区三区| 午夜毛片在线观看| 在线观看91视频| 97人妻精品一区二区三区动漫| 欧美一级夜夜爽| 少妇精品视频一区二区| 日韩精品在线免费观看视频| 国产三级视频在线| 久久久国产精品免费| a级片在线免费| 国产成人综合亚洲| 自拍偷拍亚洲图片| 好吊色欧美一区二区三区四区| 精品一区亚洲| 樱空桃在线播放| 亚洲九九精品| 91女神在线观看| 成人免费视频一区| 性の欲びの女javhd| 一区二区三区波多野结衣在线观看| 日韩免费一级片| 欧美日韩高清不卡| 好吊色在线观看| 日韩在线视频免费观看高清中文 | 一区二区三区在线免费观看| 91九色丨porny丨肉丝| 欧美乱妇15p| 青青久草在线| 久久91亚洲精品中文字幕| 欧美7777| 国产精品免费一区二区三区观看| 精品日本12videosex| 男人天堂av片| 久久精品国产精品亚洲精品| 第四色在线视频| 中文字幕综合网| 日韩欧美在线观看免费| 欧美一区二区大片| 福利片在线看| 91大神福利视频在线| 精品三级久久久| 欧洲视频一区二区三区| 精品成人免费| 天天久久综合网| 国产日韩精品一区二区浪潮av| 久久精品视频久久| 555夜色666亚洲国产免| 国产午夜视频在线观看| 性日韩欧美在线视频| 动漫一区二区三区| 亚洲成人在线视频网站| 国产日韩欧美一区| 中文字幕人妻熟女人妻a片| 中文字幕第一区第二区| 中文字幕超碰在线| 精品va天堂亚洲国产| 亚洲卡一卡二| 成人在线一区二区| 色综合天天爱| 中文字幕第80页| 久久久99久久| 天天操天天操天天操天天| 欧美精品一区二区三区视频| 韩国av网站在线| 成人情趣片在线观看免费| 日韩电影免费在线观看| 国产精品69页| 91麻豆国产精品久久| 五月婷婷激情网| 亚洲成色www8888| 91超碰在线免费| 国产视频一区二区三区四区| 欧美性色综合| 精品国产乱码久久久久夜深人妻| 日韩码欧中文字| 国产免费av观看| 成年无码av片在线| 国产麻豆一区二区三区| 免费在线精品视频| 国内成人自拍视频| 国产探花在线免费观看| 日韩亚洲欧美一区二区三区| 在线免费观看污| 高清av免费一区中文字幕| 狠狠入ady亚洲精品| 亚洲美女精品视频| 午夜精品福利一区二区蜜股av| 亚洲aaaaaaa| 亲爱的老师9免费观看全集电视剧| 亚洲综合福利| 超碰在线人人爱| 少妇av在线播放| 免费欧美在线视频| 免费看黄色的视频| 日本乱人伦一区| 香蕉视频网站在线观看| 国产欧美久久久久久| 99久久.com| 51自拍视频在线观看| 亚洲一区欧美一区| 偷拍自拍在线| 国产精品精品视频| 国产高清一区二区| 亚洲无人区码一码二码三码| 亚洲成在线观看| 国产三级在线观看| 亚洲一区二区三区成人在线视频精品 | 91国产免费观看| 日本在线看片免费人成视1000| 成人av在线网址| 欧美日韩免费| 老司机福利av| 欧美丰满高潮xxxx喷水动漫| 宅男在线观看免费高清网站| 久久青青草综合| 另类小说一区二区三区| 清纯粉嫩极品夜夜嗨av| 日韩精品视频在线观看网址| 韩日精品一区| 亚洲精品蜜桃久久久久久| 国产亲近乱来精品视频| 国产同性人妖ts口直男| 69av成年福利视频| 欧美韩日高清| 亚洲第一黄色网址| 欧美日韩另类一区| 电影在线观看一区| 亚洲视频精品一区| av电影在线观看完整版一区二区| 在线视频精品免费| 久久欧美在线电影| 日韩1区2区| 大黑人交xxx极品hd| 91精品国产91综合久久蜜臀|