Git(二)數(shù)據(jù)模型

Git一共有3種主要的對(duì)象:
blob:一個(gè)blob對(duì)應(yīng)的就是版本庫(kù)中的一個(gè)文件茄猫,對(duì)象的內(nèi)容就是文件的內(nèi)容。
tree:一個(gè)tree就是一個(gè)文件夾,對(duì)象的內(nèi)容就是它鎖包含的文件夾和文件的指針
commit:對(duì)應(yīng)一次提交

$ git cat-file --batch-check --batch-all-objects
1f7a7a472abf3dd9643fd615f6da379c4acb3e3a blob 10
4441091271cb488f44382e68d48556edfcabaf2d commit 187
5be11cc5fda424a4d7fca1b244052eecd781607e tree 67
767a8378a198a0ae64e1c0bbbc16d437c0eb1f17 blob 15
a7e45836a29172f50a732dde8b13fa36c632797c commit 235
c0db49fbfc9626ee6d439717fdce045d6528ee01 tree 38
ceaa0abfa190c7a89c0a6201935b7057427dabd6 tree 67
e17d94b6cd2820f32b4c454cc90593d798d41430 blob 23
$ git cat-file -p a7e45836a29172f50a732dde8b13fa36c632797c
tree 5be11cc5fda424a4d7fca1b244052eecd781607e
parent 4441091271cb488f44382e68d48556edfcabaf2d
author nina.hao@dmall.com <nina.hao@dmall.com> 1605185871 +0800
committer nina.hao@dmall.com <nina.hao@dmall.com> 1605185871 +0800

commit 2

注意:
blob對(duì)象是在add時(shí)就生成,tree對(duì)象卻是在commit操作時(shí)生成的
..git\refs\tags:靜態(tài)分支貌嫡,不跟隨HEAD移動(dòng)
..git\refs\heads:存放的是指向各分支的指針
..git\HEAD:文件存放的是當(dāng)前工作所在的分支的commit指針
..git\index:文件內(nèi)容就是暫存區(qū)的信息
HEAD也并不總是指向一個(gè)branch,例如:

$ git checkout 4441091271cb488f44382e68d48556edfcabaf2d
Note: switching to '4441091271cb488f44382e68d48556edfcabaf2d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 4441091 commit 1
$ cat ./.git/HEAD
4441091271cb488f44382e68d48556edfcabaf2d

這個(gè)時(shí)候HEAD直接指向一個(gè)commit,Git警告出現(xiàn)detached HEAD現(xiàn)象衅枫。如果這個(gè)時(shí)候創(chuàng)建新的commit嫁艇,由于HEAD沒有指向任何branch朗伶,Git無(wú)法通過移動(dòng)branch來(lái)追蹤新的commit弦撩。因此一旦切換到另一個(gè)branch,在detacheded HEAD下創(chuàng)建的commit很難被找回论皆。


detached head示意.png

(圖片來(lái)源于網(wǎng)絡(luò)益楼,圖侵刪)
解決方式,新建一個(gè)分支

$ git checkout 4441091271cb488f44382e68d48556edfcabaf2d -b version1
Switched to a new branch 'version1'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末点晴,一起剝皮案震驚了整個(gè)濱河市感凤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粒督,老刑警劉巖陪竿,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異屠橄,居然都是意外死亡族跛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門锐墙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)礁哄,“玉大人,你說我怎么就攤上這事溪北⊥┤蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵之拨,是天一觀的道長(zhǎng)茉继。 經(jīng)常有香客問我,道長(zhǎng)蚀乔,這世上最難降的妖魔是什么馒疹? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮乙墙,結(jié)果婚禮上颖变,老公的妹妹穿的比我還像新娘。我一直安慰自己听想,他們只是感情好腥刹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著汉买,像睡著了一般衔峰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天垫卤,我揣著相機(jī)與錄音威彰,去河邊找鬼。 笑死穴肘,一個(gè)胖子當(dāng)著我的面吹牛歇盼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播评抚,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼豹缀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了慨代?” 一聲冷哼從身側(cè)響起邢笙,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侍匙,沒想到半個(gè)月后氮惯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡想暗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年妇汗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片江滨。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铛纬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唬滑,到底是詐尸還是另有隱情告唆,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布晶密,位于F島的核電站擒悬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏稻艰。R本人自食惡果不足惜懂牧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尊勿。 院中可真熱鬧僧凤,春花似錦、人聲如沸元扔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)澎语。三九已至途事,卻和暖如春验懊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尸变。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工义图, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人召烂。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓碱工,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親骑晶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子痛垛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 可能你每天都在用Git草慧,但是你真的了解Git的內(nèi)部是如何工作的嗎桶蛔?也許你跟之前的我一樣,對(duì)Git的工作原理不甚了解...
    Jo的工作筆記閱讀 4,366評(píng)論 2 20
  • git對(duì)象 每一個(gè)git對(duì)象都由3部分組成:類型(type)漫谷、大小(size)和內(nèi)容(content)大小就是內(nèi)容...
    若兮緣閱讀 569評(píng)論 0 7
  • 文章略長(zhǎng)仔雷,預(yù)計(jì)閱讀時(shí)間28分鐘 一.git init 知識(shí)點(diǎn): 創(chuàng)建版本庫(kù)的兩種方式可以創(chuàng)建git-demo目錄,...
    shuxiaotai閱讀 359評(píng)論 0 0
  • Git介紹及基本概念 分布式版本控制系統(tǒng) Git是一個(gè)分布式版本控制系統(tǒng)舔示,每個(gè)本地保留遠(yuǎn)程倉(cāng)庫(kù)的完整副本碟婆,在本地可...
    健四郎閱讀 294評(píng)論 0 0
  • Git 是一套內(nèi)容尋址文件系統(tǒng)。很不錯(cuò)惕稻。不過這是什么意思呢竖共? 這種說法的意思是,Git 從核心上來(lái)看不過是簡(jiǎn)單地存...
    逸塵穎暉閱讀 368評(píng)論 0 0