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 log2 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 190d2100644 blob 18832d35117ef2f013c4009f5b2128dfaeff354f welcome.txt
這裡blob物件儲存著檔案"welcome.txt"的內容。
1 root@tuhooo:~/workspace/demo # git cat-file -t 18832d35117ef2f013c4009f5b2128dfaeff354f2blob
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 ac312 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 建立標...