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

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

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

這是一篇能讓你迅速了解 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-27 21:41:14

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

2019-03-28 08:39:47

5GNSASA

2024-05-16 11:13:16

Helm工具release

2009-11-09 12:55:43

WCF事務

2024-12-18 10:24:59

代理技術JDK動態代理

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技術棧公眾號

免费日韩一级片| 久草免费资源站| 视频一区二区三区不卡| 久久99精品国产.久久久久久| 久久久999精品视频| 色综合久久五月| 国产成+人+综合+亚洲欧美| 亚洲日本一区二区| 欧美不卡福利| 国产成人毛毛毛片| 日韩精品1区2区3区| 欧美大片免费看| 99精品欧美一区二区| xxxxxhd亚洲人hd| 欧美午夜精品电影| 91视频 -- 69xx| 亚洲七七久久综合桃花剧情介绍| 久久午夜羞羞影院免费观看| 91久久精品www人人做人人爽| 亚洲va在线观看| 狠狠入ady亚洲精品| 色天天综合狠狠色| 实拍女处破www免费看| 东京久久高清| 91精品国产综合久久婷婷香蕉| 麻豆av免费在线| av资源网在线播放| 一区二区三区中文字幕电影| 色播亚洲婷婷| 深夜视频在线免费| 成人高清av在线| 91中文字幕一区| 在线免费观看一区二区| 久久精选视频| 欧美中文字幕在线视频| 国产中文字字幕乱码无限| 一本一本久久a久久综合精品| 影音先锋欧美精品| 精品少妇一区二区三区免费观| 大陆精大陆国产国语精品| 日韩区在线观看| 手机在线国产视频| 亚洲伦理网站| 欧美日韩国产中文| 色婷婷成人在线| jizz亚洲女人高潮大叫| 在线免费av一区| 日日摸天天爽天天爽视频| 天天综合av| 日韩人在线观看| 日韩av片在线看| 自拍网站在线观看| 欧美午夜久久久| 爱福利视频一区二区| 在线观看涩涩| 日本丶国产丶欧美色综合| 久久久久免费精品| 岛国精品在线| 在线综合视频播放| 欧美日韩一区二区区别是什么| 欧美日韩黄网站| 精品国产不卡一区二区三区| 国产精品扒开腿做爽爽爽a片唱戏| 成人自拍在线| 亚洲欧洲日韩国产| 快灬快灬一下爽蜜桃在线观看| 水蜜桃久久夜色精品一区| www.日韩欧美| 国产一级片久久| 一本色道精品久久一区二区三区 | 国产激情小视频在线| 亚洲激情自拍偷拍| 成人性免费视频| 成人性生交大片免费观看网站| 色8久久精品久久久久久蜜| 国产又黄又猛又粗又爽的视频| 免费视频观看成人| 日韩欧美国产三级电影视频| 性猛交╳xxx乱大交| 亚洲妇女av| 北条麻妃久久精品| 久久亚洲精品大全| 日韩在线观看一区二区| 成人一区二区电影| 人妻无码中文字幕免费视频蜜桃| 久久久午夜电影| 手机福利在线视频| 亚洲精品88| 4438成人网| 丰满少妇一区二区三区| 99久久久久国产精品| 国模视频一区二区| 中文字幕观看在线| jiyouzz国产精品久久| 台湾成人av| 电影在线观看一区| 欧美日本不卡视频| 美女又爽又黄视频毛茸茸| 日韩久久视频| 欧美一区视频在线| 国产黄色av片| 国产视频一区二区三区在线观看| 成人在线观看www| 欧美日韩大片| 精品1区2区在线观看| 亚洲精品自拍视频在线观看| 99精品视频免费观看| 成人免费午夜电影| 国产精品四虎| 欧美性极品xxxx做受| 成人在线短视频| 全球成人免费直播| 91av国产在线| www黄色网址| 国产精品乱码一区二区三区软件 | 日韩福利片在线观看| 久久精品av麻豆的观看方式| 久久久久九九九| 免费在线中文字幕| 91精品国产综合久久久久久| 一色道久久88加勒比一| 国产精品日韩精品欧美精品| 99国产超薄肉色丝袜交足的后果| 成人在线观看免费| 色婷婷亚洲婷婷| 在线观看国产免费视频| 国产一区美女| 成人国产一区二区| 中文字幕中文字幕在线十八区| 欧美日韩一二区| 国产视频三区四区| 日本不卡在线视频| 亚洲精品成人三区| 91av一区| 日韩在线视频免费观看| 免费在线不卡av| 国产色产综合色产在线视频| 精品一卡二卡三卡| 亚洲人成网站77777在线观看| 69av在线视频| 亚洲色图欧美视频| 欧美色道久久88综合亚洲精品| 男女一区二区三区| 国产精品试看| 欧美第一黄网| 欧美精品总汇| 一色桃子一区二区| 亚洲一级片免费看| 亚洲欧洲av一区二区三区久久| 国产色视频在线播放| 99热在线成人| 97免费资源站| av伦理在线| 亚洲激情视频网| 国产免费一区二区三区四区五区 | 亚洲第一视频网站| 国偷自拍第113页| 91老司机福利 在线| 成人精品视频一区二区| 久久五月天小说| 亚洲直播在线一区| sm在线观看| 亚洲欧美日韩国产中文| 亚洲一区二区激情| 一区二区在线免费| 黑丝av在线播放| 日本vs亚洲vs韩国一区三区二区 | 亚洲激情中文字幕| 精品人妻一区二区三区免费看| 久久精品夜夜夜夜久久| 天天色综合社区| 亚洲精品一区二区在线看| 国产精品一区二区你懂得| 在线视频cao| 日韩中文字幕国产精品| 亚洲欧美激情在线观看| 一本久道久久综合中文字幕| 国产精品视频在| 国产高清不卡一区二区| 干日本少妇首页| 99久久激情| 久久久久久高清| 亚洲一区av| 4438全国成人免费| 日韩伦理在线观看| 亚洲激情国产精品| 91成人在线免费| 狠狠躁夜夜躁人人爽超碰91| 日韩在线一卡二卡| 99riav久久精品riav| 天天干天天综合| 一区二区三区福利| 一区二区三区观看| 偷拍视屏一区| 亚洲专区国产精品| 精品三区视频| 国模叶桐国产精品一区| 黄网站在线免费| 亚洲欧美日韩天堂| 亚洲xxxx天美| 欧美日韩一区在线观看| 国产www在线| 亚洲乱码日产精品bd| 性猛交ⅹxxx富婆video | 91精品国产综合久久香蕉麻豆| 欧美激情黑白配| 亚洲国产欧美在线人成| 精品伦精品一区二区三区视频密桃| 成熟亚洲日本毛茸茸凸凹| 亚洲综合欧美在线| 国产美女精品| 久久99久久99精品| 自拍日韩欧美| 在线成人性视频| 免费久久精品| 久久精品国产一区二区三区日韩 | 亚洲精品一区二区在线| www.色婷婷.com| 欧美高清精品3d| 五月婷婷激情五月| 精品久久久久久久大神国产| 国产一级一级片| 亚洲欧美aⅴ...| 精品国产国产综合精品| 国产精品网站在线观看| 亚洲国产av一区| 91天堂素人约啪| 你懂的在线观看网站| 国产69精品一区二区亚洲孕妇| 黄色一级片免费播放| 久久国内精品自在自线400部| 欧美 国产 小说 另类| 亚洲精品色图| 国产午夜福利在线播放| 99国产精品| 国产深夜男女无套内射| 亚洲国产精品第一区二区三区| japanese在线播放| 欧美日韩影院| 国内少妇毛片视频| 亚洲精品一二| 欧美一级在线看| 性欧美videos另类喷潮| 日韩在线综合网| 性欧美xxxx大乳国产app| 99爱视频在线| 日本va欧美va精品| 亚洲天堂网2018| 国产一区二区毛片| 免费黄色a级片| 不卡一区二区在线| 成人乱码一区二区三区av| 国产日韩欧美制服另类| 日本一卡二卡在线播放| 国产精品久久久久久亚洲伦| 来吧亚洲综合网| 亚洲综合色自拍一区| 国产精彩视频在线| 欧美视频中文字幕在线| 中文字幕天堂在线| 宅男噜噜噜66一区二区66| 草草视频在线播放| 日韩电影大全免费观看2023年上| 视频福利在线| 精品国产视频在线| 人妖欧美1区| 国产成人精品久久二区二区| 另类一区二区| αv一区二区三区| 天堂成人娱乐在线视频免费播放网站| 欧美第一黄网| 91精品一区二区三区综合在线爱| 黄色特一级视频| 久久av最新网址| 亚洲无在线观看| 成人国产在线观看| 国产高潮呻吟久久| 亚洲嫩草精品久久| 亚洲高清毛片一区二区| 欧美日韩国产美女| 欧美 日韩 国产 成人 在线 91| 亚洲美女免费精品视频在线观看| 欧美成人hd| 777777777亚洲妇女| 久久久久黄色| 国产在线欧美日韩| 婷婷亚洲图片| 国产亚洲综合视频| 国精产品一区一区三区mba桃花| 日本少妇xxxx| 亚洲桃色在线一区| 日日噜噜噜噜人人爽亚洲精品| 欧美一区二区三区影视| 免费动漫网站在线观看| 欧美猛男性生活免费| 韩国精品主播一区二区在线观看| 亚洲尤物视频网| 成人高清av| 久久精品.com| 丁香桃色午夜亚洲一区二区三区| 女同久久另类69精品国产| 第一福利永久视频精品 | 国产麻豆一区| 国产视频一区二区三区四区| 天天做天天爱天天爽综合网| 午夜肉伦伦影院| 国产精品亚洲一区二区三区在线 | 91亚洲一区| 久久网站免费视频| 高清av一区二区| 97精品在线播放| 色噜噜狠狠色综合中国| 香蕉视频黄在线观看| 欧美日韩高清在线观看| 岛国一区二区| 日韩在线观看电影完整版高清免费| 亚洲日本黄色| 亚洲精品成人无码毛片| 亚洲人成影院在线观看| 怡春院在线视频| 亚洲欧美制服第一页| 手机在线理论片| 国产精品一区二区在线观看| 欧美日本一区| 国模大尺度视频| 亚洲精品成a人| 99在线小视频| 美女视频黄免费的亚洲男人天堂| 成人一级视频| 亚洲精品中文字幕乱码三区不卡| 视频在线在亚洲| 一级特黄a大片免费| 午夜视频在线观看一区| 好吊视频一区二区三区| 欧美激情亚洲精品| 高清日韩欧美| 亚洲一区二区三区av无码| 懂色av一区二区在线播放| 青娱乐av在线| 精品国产精品一区二区夜夜嗨| 成人三级小说| 激情五月综合色婷婷一区二区 | 欧美午夜美女看片| 男女污视频在线观看| 日本在线观看天堂男亚洲 | 亚洲精品在线播放| 日本a在线天堂| 成人久久视频在线观看| 91在线看视频| 亚洲欧洲激情在线| 日本免费在线一区| 椎名由奈jux491在线播放 | 欧洲av一区二区嗯嗯嗯啊| 美女毛片在线看| 国产欧美一区二区白浆黑人| 天天做天天爱天天爽综合网| 97免费公开视频| 亚洲成av人片一区二区| 日本天堂影院在线视频| 国产精品高潮视频| 亚洲老妇激情| 欧亚乱熟女一区二区在线| 色88888久久久久久影院按摩| 91女主播在线观看| 91久久久久久久久| 亚洲国产91| 91中文字幕永久在线| 欧美日韩国产电影| 久久av色综合| 欧美一区二区三区成人久久片| 美女视频免费一区| 精品亚洲永久免费| 国产亚洲激情视频在线| 24小时成人在线视频| 亚洲熟妇无码一区二区三区| 国产日韩欧美综合在线| 99热这里只有精| 欧美亚洲伦理www| 99久久精品国产亚洲精品| 人妻 日韩 欧美 综合 制服| 色婷婷亚洲精品| 欧美男男video| 色一情一乱一伦一区二区三欧美| 国产在线播放一区| 五月天综合激情网| 久久手机精品视频| 综合亚洲色图| 中文字幕人妻无码系列第三区| 狠狠综合久久av一区二区小说| 精品自拍一区| 欧美日韩国产综合在线| 国产在线精品国自产拍免费| 久久久久久久久久久影院| 久久中文字幕国产| 国产精品一在线观看| 人妻激情偷乱视频一区二区三区| 91福利区一区二区三区| 超碰97国产精品人人cao| 亚洲第一综合| 26uuu成人网一区二区三区|