git 分支原理介紹

參考文章

工作原理

git 的工作原理:

git 版本控制是通過保存不同時間點的快照實現的。git 在提交操作時,git 會保存一個提交對象,該提交對象中會包含:

  • 用戶名
  • 郵箱
  • 提交信息
  • 父指針,自然的,首次提交的對象是沒有父指針的,之後提交的對象纔有父指針
  • 指向樹對象的指針(樹對象:git 通過計算每個子目錄的校驗和,將其保存爲樹對象)

    • 目錄結構
    • blob 對象索引

git 的分支,其實本質上是指向提交對象的可變指針。由於創建分支的高效性,所以,git 鼓勵開發人員創建分支!

原理說明

首先在創建 git 項目的時候,默認會創建 master 分支!這個 master 分支正常應該是指向最新一次提交。

              head
              |
              master
              |
one <- two <- thr

假設這個時候,用戶做了些修改,然後提交:

                     head
                     |
                     master
                     |
one <- two <- thr <- four

從上述兩個過程可以看出,master 分支實際就是一個指向某次提交的指針!會根據用戶的提交自動向前移動指向最新一次提交。

如果用戶新創建了一個分支(test)呢:

git branch test

他的實際結果就是如下:

                     head
                     |
                     master
                     |
one <- two <- thr <- four
                     |
                     test

因爲這個時候用戶在 master 分支下,用戶再次做出修改提交:

                     test
                     |
one <- two <- thr <- four <- five
                             |
                             master
                             |
                             head

如果這個時候用戶切換到 test 分支(git checkout test),做些修改然後再次提交:

                              head
                              |
                              test
                              |
                           <- five-for-test
one <- two <- thr <- four 
                           <- five
                              |
                              master

產生了一個新的分支!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章