git學習 七 git 物件庫

2021-09-08 05:15:17 字數 2446 閱讀 4461

1 git log -l -pretty=raw     //

檢視日誌 -l是幹啥的

2 git log -pretty=raw //

3 git cat-file -t 雜湊值 //

檢視id的型別

不知道為啥這裡我不一樣:即使用git log -l --pretty=raw也只是出現commit的,但是git cat-file -p 雜湊值則會出現tree和parent。

1 root@tuhooo:~/workspace/demo # git log

2 commit ac31089960196a531c277dc516be678c0aa76489 (head ->master)

3 author: tuhooo 163.com>

4 date: thu jun 14

16:35:48

2018 +0800

56 empyt commit?78

commit 12dc6c72e41e6457e262f6f1be5ec5dd5dcb6b58

9 author: tuhooo 163.com>

10 date: thu jun 14

15:25:39

2018 +0800

1112

initialized.

13 root@tuhooo:~/workspace/demo # git cat-file -p ac31

14tree 190d840dd3d8fa319bdec6b8112b0957be7ee769

15parent 12dc6c72e41e6457e262f6f1be5ec5dd5dcb6b58

16 author tuhooo 163.com> 1528965348 +0800

17 committer tuhooo 163.com> 1528965348 +0800

1819 empyt commit?

檢視tree物件的資訊:

1 root@tuhooo:~/workspace/demo # git cat-file -p 190d

2100644 blob 18832d35117ef2f013c4009f5b2128dfaeff354f welcome.txt

這裡blob物件儲存著檔案"welcome.txt"的內容。

1 root@tuhooo:~/workspace/demo # git cat-file -t 18832d35117ef2f013c4009f5b2128dfaeff354f

2blob

3 root@tuhooo:~/workspace/demo # git cat-file -p 18832d35117ef2f013c4009f5b2128dfaeff354f

4 hello.

這些物件都是存放在git庫中的objects目錄下(id的前兩位作為目錄名,後38位作為檔名)。

在commit物件之間的相互關聯,可以很容易識別出一條跟蹤鏈。最後乙個commit沒有parent屬性,所以跟蹤鏈到此終結,此即為提交的起點。

1 git log --pretty=raw --graph ac31

2 git status -s -b //

檢視工作區和暫存區的改動 -s 精簡資訊 -b 顯示當前分支

1 git branch     //

檢視當前分支, 前面標有*號的是當前分支2//

下面三個命令的輸出是一樣的

3 git log -l head

4 git log -l master

5 git log -l refs/heads/master

也就是在當前的版本庫中,head、master和refs/heads/master具有相同的指向。接下來一步一步從head到master再到commit。得出的結論是master指向的是乙個提交id(最新提交)。即用乙個檔案指向這個鏈條的最新提交。

find .git -name head -o -name master

在.git/logs目錄下的檔案以後再討論,現在看.git/head和.git/refs/heads/master上。

cat .git/head

cat .git/refs/heads/master

git cat-file -t e69606   // 檢視該提交

檢視該提交的內容

用乙個檔案指向最新的提交,就是.git/refs/heads/master了。

1 git rev-parse               //

顯示引用對應的提交

2 git rev-parse master

3 git rev-parse refs/heads/master

4 git rev-parse head

Git學習筆記(四) Git物件

git cat file t id號 檢視此id號對應的物件型別 commit tree parent blob git cat file p id號 檢視此id號對應的物件內容 這些物件儲存在git庫中的objects目錄下 id前兩位作為目錄名,後38位作為檔名 通過commit物件之間的相互關...

Git學習(七)管理修改

現在,假定你已經完全掌握了暫存區的概念。下面,我們要討論的就是,為什麼git比其他版本控制系統設計得優秀,因為git跟蹤並管理的是修改,而非檔案。你會問,什麼是修改?比如你新增了一行,這就是乙個修改,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,甚至建立乙...

Git學習筆記七 標籤入門

一 建立標籤 任務描述 在開發過程中,commit id是一串無序的字元,它雖然能唯一標記一次 提交,但是,它很難記憶和辨識。為了給不同的版本起乙個容易辨識的名字,我們可以給這次提交打上乙個標籤,用不同的標籤來對應不同的版本。1 檢視標籤 git tag git tag l v5.1.2.2 建立標...