天天看點

了解git 中的HEAD指針&branch指針

了解git 中的HEAD指針&branch指針

HEAD指針

使用​

​git checkout​

​ 來移動HEAD指針,移動的對象可以是分支指針也可以是快照。

HEAD指針可以指向快照也可以指向branch。當指向branch時送出後會和branch指針一起向後移動,當不指向branch送出時時則會在一個detached狀态。

分支(branch)指針

​git branch -f​

​ 來移動分支指針,移動的對象隻能是快照。當且僅當HEAD指針指向分支指針的時候,送出才會有效。

執行個體

1.HEAD指針預設指向目前的分支指針,用星号表示,如master*

了解git 中的HEAD指針&branch指針

master

2.移動HEAD指針,​

​git checkout C1​

這個時候HEAD指針指向的是快照,這個時候指針的狀态稱之為遊離狀态,detached。

了解git 中的HEAD指針&branch指針

這裡寫圖檔描述

3.HEAD指針在遊離狀态下送出,​

​git commit​

遊離狀态下送出的commit,沒有分支指針指向。可以在遊離狀态下的快照建立分支或強制移動已存在的分支

了解git 中的HEAD指針&branch指針

4.移動HEAD指針,讓他指向master分支指針​

​git checkout master​

了解git 中的HEAD指針&branch指針

5.在master分支指針上送出​

​git commit​

這個是正常的送出,和遊離狀态下的送出是不一樣的

了解git 中的HEAD指針&branch指針

6.給detached狀态下的快照添加分支。在3中我們提到給detached狀态下的快照增加分支的兩種方法。

6.1給detached狀态下的快照建立一個分支

6.1.1 将HEAD指針移動到detached狀态的快照​

​git checkout C2​

了解git 中的HEAD指針&branch指針

6.1.2添加分支​

​git branch new​

了解git 中的HEAD指針&branch指針

6.1.3将HEAD指針移動到new分支指針上就可以在new分支上送出了​

​git checkout new​

了解git 中的HEAD指針&branch指針

6.2移動已存在的分支到detached狀态的分支​

​git branch -f master C2​

這個時候master分支以前的快照C3就變成了detached狀态了

了解git 中的HEAD指針&branch指針

繼續閱讀