日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

g-git 相关命令 及其 基本原理探索 (一)

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 g-git 相关命令 及其 基本原理探索 (一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • git 最小配置作用域
      • git 創建本地倉庫
      • git log 查看版本演進
      • .git 目錄
        • refs目錄
        • objects
        • git 三種對象類型詳解 (commit ,tree,blob)

因為工作需求,接下來將從git的使用到其內部工作原理,來避免代碼提交或者review或者版本管理上的一些尷尬,同時也來學習一下這個優秀的分布式版本管理工具的實現,理解事務在分布式里面的原子性思想。

git 最小配置作用域

git 創建本地倉庫

git log 查看版本演進

.git 目錄


單獨介紹一下如下兩個重要的目錄:

refs目錄

refs目錄下有兩個目錄:heads和tags

  • heads 保存的是獨立的分支空間,且之間互不影響。
  • tags表示里程碑,項目開發到一定程度之后可以打上對應的tags作為一個階段的標記

heads目錄下的 分支內容保存的是一個個代表唯一分支的名稱的四十位的hash值

通過git branch -av看到的分支信息 看到的分支名稱后面的hash值比較短,這里是只要這個hash值能夠唯一代表當前的分支即可顯示,所以短一點也是能夠唯一性表示當前分支的。

tags的目錄下也保存著之前打過的tags,為每一個tags生成一個唯一的對象,且用40位的hash值進行標識
通過如下兩個命令可以查看對應hash值代表的對象類型和操作內容

  • git cat-file -t hash_value 查看對象類型
  • git cat-file -p hash_value 查看對象內容

objects

目錄內容如下:

pack 是在多個松散目錄較多的情況下對其進行壓縮,將壓縮后的數據保存到當前目錄
其他松散目錄來看一下
cd 14 && ls -al

git cat-file -t 142a4f1706858e07b1a29c591d48ebc3e562bc45 -t來查看類型 以及-p 查看具體的內容
這里需要注意hash數值的前兩位一定是目錄名稱,后面是實際的hash數值

類型是tree,且發現內容是一個blob類型的對象,其保存的是我們當前git目錄下的唯一一個文件test_file,繼續查看其類型及內容

git 三種對象類型詳解 (commit ,tree,blob)

目前通過對git目錄的訪問,可以看到git擁有三種主要的核心對象:commit(heads目錄),tree(objects目錄),blob(實際的數據,保存在tree對象的指向中)

接下來看看三種對象類型之間的關系

  • commit類型就是我們使用git commit提交之后創建的數據對象,使用git cat-file -p b360e56后面的字符串是本次commit下的內容信息,它是按照樹形存儲的。主要是里面的tree類型的文件夾。
    內容如下:

    root@root heads % git cat-file -p b360e56b39a5d605918816ea4dc07d61e93b12f8
    tree 142a4f1706858e07b1a29c591d48ebc3e562bc45
    parent 30a71408576f421909d05cdd424703b8866dd943
    author BaronStack <2689496754@qq.com> 1593260841 +0800
    committer BaronStack <2689496754@qq.com> 1593260841 +0800
    
  • tree 類型就是git目錄的管理結構,也可以當作文件夾來看。通過tree的hash值我們能夠訪問到存儲與其文件夾內部的子目錄以及對應的子文件。

  • blob類型 是真正存放數據的內容,只要數據的內容一樣,git這里只會創建一個blob對象。所以,這里也保證了blob的版本控制和不同版本的合并功能是正常的。

總結

以上是生活随笔為你收集整理的g-git 相关命令 及其 基本原理探索 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。