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


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

Yooye
2019.02.28 10:44:32字數 492閱讀 668

HEAD指針

使用git checkout 來移動HEAD指針,移動的對象可以是分支指針也可以是快照。
HEAD指針可以指向快照也可以指向branch。當指向branch時提交后會和branch指針一起向后移動,當不指向branch提交時時則會在一個detached狀態。

分支(branch)指針

使用git branch -f 來移動分支指針,移動的對象只能是快照。當且僅當HEAD指針指向分支指針的時候,提交才會有效。

實例

1.HEAD指針默認指向當前的分支指針,用星號表示,如master*

 

 
master

2.移動HEAD指針,git checkout C1
這個時候HEAD指針指向的是快照,這個時候指針的狀態稱之為游離狀態,detached。

 
這里寫圖片描述

 

3.HEAD指針在游離狀態下提交,git commit
游離狀態下提交的commit,沒有分支指針指向。可以在游離狀態下的快照新建分支或強制移動已存在的分支

 
這里寫圖片描述

 

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

 
這里寫圖片描述

 

5.在master分支指針上提交git commit
這個是正常的提交,和游離狀態下的提交是不一樣的

 
這里寫圖片描述

 

6.給detached狀態下的快照添加分支。在3中我們提到給detached狀態下的快照增加分支的兩種方法。
6.1給detached狀態下的快照新建一個分支
6.1.1 將HEAD指針移動到detached狀態的快照git checkout C2

 
這里寫圖片描述

 

6.1.2添加分支git branch new

 
這里寫圖片描述

 

6.1.3將HEAD指針移動到new分支指針上就可以在new分支上提交了git checkout new

 
這里寫圖片描述

 

6.2移動已存在的分支到detached狀態的分支git branch -f master C2
這個時候master分支以前的快照C3就變成了detached狀態了

 
這里寫圖片描述

 

本文轉載自:http://blog.csdn.net/claroja


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM