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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git分支机制简介

發布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git分支机制简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Git分支只不過是一個指向某次提交的輕量級的可移動指針,當你發起提交時,就有了一個指向最后一次提交的名為master的分支。每次提交時,它都會自動向前移動。

Git默認的分支名稱為master,master分支其實并?一個特殊的分支,它與其他分支沒有什么區別。幾乎每個git倉庫都擁有該分支,這是因為git init初始化一個git倉的時候默認創建該分支,而大多數人沒有去重命名它。

?

  • 創建新分支
  • git branch study創建名為study的分支

    創建分支的時候,會創建一個指向當前提交的新指針,也就是testing。Git如何知道你當前處于哪一分支上?git通過一個名為HEAD的特殊指針實現的,在git中,HEAD是一個指向當前所在的本地分支的指針。

    ?

    可通過git log --oneline –decorate查看各分支當前所指向的對象,用到--decorate

    可看到master和study分支就顯示在f639e4e

    2.切換分支

    Git checkout study

    切換到study后,HEAD由指向master指向了study,HEAD是指向當前分支的。

    切換到study分支有什么意義呢?我們再提交一次

    再次提交之后study分支已經向前移動,但master分支還是指向之前執行git checkout study切換分支時所在的提交。

    我們再切換master分支,它會把HEAD指針移回到master分支,還會把我們工作目錄的文件恢復到master分支指向的快照的狀態,也就是第3次commit后的狀態,比如我第4次commit是增加了#test4,重新恢復到沒有增加#test4的版本。

    ?

    請注意,當你在切換分支時,工作目錄的文件會被改變。如果你切換到較舊的分支,工作目錄會被恢復到該分支最后一次提交的狀態。但如果在當前狀態下無法干凈地完成恢復操作,就允許你切換分支。比如我在master分支下修改了config文件,沒有commit,就不允許切換,要求我們先提交

    ?

    Commit后,項目歷史已經產生了分叉,就是你創建了新分支study,在study分支上做了一次修改并提交。然后切回到主分支master做了修改并提交。這兩次提交是在master和study上做出的,彼此相互分離,你可以在分之間自由切換,當你準備好之后就可以合并這些修改。

    ?

    git log --oneline --decorate --graph –all可以查看到分叉的歷史,下圖顯示出分支的指向以及項目歷史的分叉情況

    ?

    Git分支實際上就是一個簡單的文件,其中只包含了該分支所指向提交的長度為10個字符的SHA-1校驗和(比如64fcb05b361cc7a8c76d05e441cf6e5125ff5866),見下圖的commit

    。正因為這樣,git分支創建和刪除的成本很低,創建新分支就如同向文件寫入 41給字節(40個字符外加一個換行符)一樣的簡單快捷。

    ?

    ?

    總結

    以上是生活随笔為你收集整理的Git分支机制简介的全部內容,希望文章能夠幫你解決所遇到的問題。

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