HEAD指針
使用git checkout
來移動HEAD指針锐涯,移動的對象可以是分支指針也可以是快照遥椿。
HEAD指針可以指向快照也可以指向branch锦担。當(dāng)指向branch時提交后會和branch指針一起向后移動,當(dāng)不指向branch提交時時則會在一個detached狀態(tài)坊饶。
分支(branch)指針
使用git branch -f
來移動分支指針,移動的對象只能是快照挫望。當(dāng)且僅當(dāng)HEAD指針指向分支指針的時候立润,提交才會有效。
實例
1.HEAD指針默認(rèn)指向當(dāng)前的分支指針媳板,用星號表示桑腮,如master*
2.移動HEAD指針,git checkout C1
這個時候HEAD指針指向的是快照蛉幸,這個時候指針的狀態(tài)稱之為游離狀態(tài)破讨,detached。
3.HEAD指針在游離狀態(tài)下提交奕纫,git commit
游離狀態(tài)下提交的commit提陶,沒有分支指針指向∪羲可以在游離狀態(tài)下的快照新建分支或強(qiáng)制移動已存在的分支
4.移動HEAD指針搁骑,讓他指向master分支指針git checkout master
5.在master分支指針上提交git commit
這個是正常的提交,和游離狀態(tài)下的提交是不一樣的
6.給detached狀態(tài)下的快照添加分支又固。在3中我們提到給detached狀態(tài)下的快照增加分支的兩種方法。
6.1給detached狀態(tài)下的快照新建一個分支
6.1.1 將HEAD指針移動到detached狀態(tài)的快照git checkout C2
6.1.2添加分支git branch new
6.1.3將HEAD指針移動到new分支指針上就可以在new分支上提交了git checkout new
6.2移動已存在的分支到detached狀態(tài)的分支git branch -f master C2
這個時候master分支以前的快照C3就變成了detached狀態(tài)了
本文轉(zhuǎn)載自:http://blog.csdn.net/claroja